Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas-从1-N开始的列系列总和_Python_Pandas - Fatal编程技术网

Python Pandas-从1-N开始的列系列总和

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

从第一周到第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_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)