使用pandas计算累积求和可以使用cumsum()方法,下面是具体步骤:
1.导入pandas库
import pandas as pd
2.创建DataFrame
假设我们有一组数据,包含日期和每天的收入,我们可以通过如下代码创建一个DataFrame:
data = {'date':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'],
'income':[100, 200, 300, 400]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
# 把日期列转为pandas的日期格式,以便后面的累积求和计算
3.计算累积求和
使用cumsum()方法计算DataFrame中每个元素以前的所有元素的和,并生成一个新的DataFrame:
df['cumulative_sum'] = df['income'].cumsum()
代码解释:
df['income']
选出DataFrame中的收入列,使用cumsum()方法计算每个元素以前的所有元素的和df['cumulative_sum']
新建一个列名为’cumulative_sum’的列,并把计算所得的累积求和结果赋值给这一列
4.示例说明
例如,我们可以通过以下代码检验上述计算是否正确:
print(df)
输出结果如下:
date income cumulative_sum
0 2021-01-01 100 100
1 2021-01-02 200 300
2 2021-01-03 300 600
3 2021-01-04 400 1000
可以看到,’cumulative_sum’列中每个元素依次为累积求和的结果。
另外,我们也可以先使用groupby()方法按照某列进行分组,再对每个分组应用cumsum()方法。例如,可以按照月份分组计算每个月的累积收入,示例如下:
df['month'] = df['date'].dt.month
# 提取出日期中的月份
df['monthly_sum'] = df.groupby('month')['income'].cumsum()
# 按照月份分组,计算每个月的累积收入
这段代码将DataFrame按照月份分组,然后对每个分组应用cumsum()方法,计算出每个月的累积收入。我们可以通过以下代码检验上述计算是否正确:
print(df)
输出结果如下:
date income cumulative_sum month monthly_sum
0 2021-01-01 100 100 1 100
1 2021-01-02 200 300 1 300
2 2021-01-03 300 600 1 600
3 2021-01-04 400 1000 1 1000
可以看到,’monthly_sum’列中每个元素依次为每个月的累积求和结果。