在 pandas 中,对当前行上/下方的列求和

6

我在尝试使用pandas实现以下功能:

df['X'] = df['C'].where(row is <= current row).sum()
df['Y'] = df['C'].where(row is >= current row).sum()

什么是正确的 Pandas 语法,使其对列 C 中高于或等于当前行的数据进行求和?
2个回答

6
这是 cumsum(累加和)函数:
df['X'] = df['C'].cumsum()
df['Y'] = df['C'].sum() + df['C'] - df['X']
# or 
# df['Y'] = df.iloc[::-1].cumsum()

非常需要的问题和答案 - aimme
跟进问题:如果我需要排除当前行本身(即“行<”与“行<=”),有没有一种简单的方法让cumsum做到这一点? - Brannon
@Brannon cumsum不行,但与shift结合使用可以:df['C'].shift().cumsum() - Quang Hoang

2

让我们尝试使用expanding,您可以选择所需的聚合函数等,如mean/std

df['X'] = df['C'].expanding().sum()
df['Y'] = df['C'].iloc[::-1].expanding().sum()

看起来应该是“扩展”? - Brannon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接