以下是一个示例代码,演示了如何按组累加前一行的值:
import pandas as pd
# 创建一个示例数据帧
df = pd.DataFrame({'group': ['A', 'A', 'A', 'B', 'B', 'B'],
'value': [1, 2, 3, 4, 5, 6]})
# 按组累加前一行的值
df['cumulative_sum'] = df.groupby('group')['value'].apply(lambda x: x.shift(1).cumsum())
print(df)
输出结果如下:
group value cumulative_sum
0 A 1 NaN
1 A 2 1.0
2 A 3 3.0
3 B 4 NaN
4 B 5 4.0
5 B 6 9.0
在这个示例中,我们使用groupby
方法按照group
列对数据进行分组。然后,我们使用shift(1)
函数将每个组的值向上移动一行,并使用cumsum
函数对移动后的值进行累加。最后,我们将结果存储在一个新的列cumulative_sum
中。
请注意,由于第一行没有前一行值,因此在累加过程中它们将被视为NaN。