Python Pandas-从1-N开始的列系列总和
从第一周到第52周,我有一些花费专栏 我希望将前26个和后26个分别相加 我有以下资料:Python Pandas-从1-N开始的列系列总和,python,pandas,Python,Pandas,从第一周到第52周,我有一些花费专栏 我希望将前26个和后26个分别相加 我有以下资料: column_names = [x for x in df.columns.values.tolist() if x.startswith("spend_") ] 这给了我所有我感兴趣的专栏 [“花费1”, “花费2”, “花销3”, “花费4”, “花费5”…] 我可以总结如下: df['pre_spend'] = df[column_na
column_names = [x for x in df.columns.values.tolist()
if x.startswith("spend_")
]
这给了我所有我感兴趣的专栏
[“花费1”,
“花费2”,
“花销3”,
“花费4”,
“花费5”…]
我可以总结如下:
df['pre_spend'] = df[column_names].sum(axis=1)
这给了我52周的时间
有没有简单的方法选择1_26和27_52并分别求和
在sas中,我会这样做:
支出前=支出总额(支出1-26) 我认为您需要按标签选择列:
a = df.loc[:, 'spend_1':'spend_26'].sum(axis=1)
b = df.loc[:, 'spend_27':'spend_52'].sum(axis=1)
样本:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(5,6))).add_prefix('spend_')
print (df)
spend_0 spend_1 spend_2 spend_3 spend_4 spend_5
0 8 8 3 7 7 0
1 4 2 5 2 2 2
2 1 0 8 4 0 9
3 6 2 4 1 5 3
4 4 4 3 7 1 1
谢天谢地,耶斯雷尔的工作比我所能做到的要好得多:
column_names = [x for x in df.columns.values.tolist()
if x.startswith("spend_")
]
pre = df.loc[:,column_names[:26]]
pre = pre.sum(axis=1)
post = df.loc[:,column_names[26:]]
post = post.sum(axis=1)
你能做一个样本数据集吗?你可以用a来求和它的一部分。你也许应该花点时间看看这个演讲。
column_names = [x for x in df.columns.values.tolist()
if x.startswith("spend_")
]
pre = df.loc[:,column_names[:26]]
pre = pre.sum(axis=1)
post = df.loc[:,column_names[26:]]
post = post.sum(axis=1)