python - Pandas - 对 1-N 列的总和系列

标签 python pandas

我有一些从第 1 周到第 52 周的花费列 我希望分别对前 26 个和后 26 个求和。

我有以下内容:

column_names = [x for x in df.columns.values.tolist() 
                if x.startswith("spend_")
               ]

这为我提供了我感兴趣的所有列。

['花费_1', '花费_2', '花费_3', '花费_4', 'spend_5'...]

然后我可以总结如下:

df['pre_spend'] = df[column_names].sum(axis=1)

这给了我全部 52 周。

有没有一种简单的方法可以选择 1_26 和 27_52 并分别求和?

在 sas 中我会这样做: pre_spend = sum(of spend_1-spend_26);

最佳答案

我想你需要DataFrame.loc按标签选择列:

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

print (df.loc[:, 'spend_0':'spend_2'])
   spend_0  spend_1  spend_2
0        8        8        3
1        4        2        5
2        1        0        8
3        6        2        4
4        4        4        3

a = df.loc[:, 'spend_0':'spend_2'].sum(axis=1)
print (a)
0    19
1    11
2     9
3    12
4    11
dtype: int64

print (df.loc[:, 'spend_3':'spend_5'])
   spend_3  spend_4  spend_5
0        7        7        0
1        2        2        2
2        4        0        9
3        1        5        3
4        7        1        1

b = df.loc[:, 'spend_3':'spend_5'].sum(axis=1)
print (b)
0    14
1     6
2    13
3     9
4     9
dtype: int64

关于python - Pandas - 对 1-N 列的总和系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618827/

相关文章:

python - 如何从 QTextEdit() 的第一个输入中的第二个窗口获取信息

python - 如何使用 Python 和 OpenCV 增强图像然后将其转换为二进制图像?

python - Pandas:通过对来自不同 df 的列求和来创建新 df 的 Pythonic 方式

python - 查找创建内容超过 500 条的内容用户创建总数,Python

python - 困难的重复数据删除

python - Pandas 系列重复 n 次并更改列值

python - 如何在 pandas 和 Jupyter Notebook 中创建一个带有指向本地文件的可点击超链接的表格

python - 如何在Python中构建复数类?

python - 谷歌应用引擎中的图像 exif 数据

python - Pandas:如果包含超过 2 个条目,如何删除行?