下面是Python pandas计算每行的增长率与累计增长率的攻略。
首先我们需要准备好要计算的数据,假设有以下数据:
import pandas as pd
df = pd.DataFrame({
'时间': ['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01', '2020-05-01'],
'销售额': [1000, 1200, 1500, 2000, 2500]
})
print(df)
输出结果如下:
时间 销售额
0 2020-01-01 1000
1 2020-02-01 1200
2 2020-03-01 1500
3 2020-04-01 2000
4 2020-05-01 2500
计算每行的增长率可以通过pandas的pct_change()
函数实现。该函数可以计算序列中相邻元素之间的变化率。
df['增长率'] = df['销售额'].pct_change()
print(df)
输出结果如下:
时间 销售额 增长率
0 2020-01-01 1000 NaN
1 2020-02-01 1200 0.200000
2 2020-03-01 1500 0.250000
3 2020-04-01 2000 0.333333
4 2020-05-01 2500 0.250000
注意:第一行的增长率为NaN,因为没有前一行数据作为参考,无法计算增长率。
计算累计增长率可以通过pandas的cumprod()
函数实现。该函数可以计算序列的累计乘积。
df['累计增长率'] = (1 + df['增长率']).cumprod() - 1
print(df)
输出结果如下:
时间 销售额 增长率 累计增长率
0 2020-01-01 1000 NaN NaN
1 2020-02-01 1200 0.200000 0.200000
2 2020-03-01 1500 0.250000 0.470588
3 2020-04-01 2000 0.333333 1.000000
4 2020-05-01 2500 0.250000 1.750000
注意:第一行的累计增长率为NaN,因为没有前一行数据作为参考,无法计算累计增长率。累计增长率通过累计乘积计算得到,需要注意的是,得到的值需要减去1才是真正的累计增长率。
我们再通过一个实例来说明计算每行的增长率与累计增长率的方法,假设有以下数据:
import pandas as pd
df = pd.DataFrame({
'时间': ['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01', '2020-05-01'],
'销售额': [1000, 1200, 900, 1500, 1800]
})
print(df)
输出结果如下:
时间 销售额
0 2020-01-01 1000
1 2020-02-01 1200
2 2020-03-01 900
3 2020-04-01 1500
4 2020-05-01 1800
计算每行的增长率:
df['增长率'] = df['销售额'].pct_change()
print(df)
输出结果如下:
时间 销售额 增长率
0 2020-01-01 1000 NaN
1 2020-02-01 1200 0.200000
2 2020-03-01 900 -0.250000
3 2020-04-01 1500 0.666667
4 2020-05-01 1800 0.200000
计算累计增长率:
df['累计增长率'] = (1 + df['增长率']).cumprod() - 1
print(df)
输出结果如下:
时间 销售额 增长率 累计增长率
0 2020-01-01 1000 NaN NaN
1 2020-02-01 1200 0.200000 0.200000
2 2020-03-01 900 -0.250000 -0.142857
3 2020-04-01 1500 0.666667 0.714286
4 2020-05-01 1800 0.200000 1.000000
通过计算可以看出,在第三行销售额下降了25%,对应的增长率为-0.25,而在第四行销售额上升了66.67%,对应的增长率为0.6667。通过累计增长率可以看出,前三行的销售额总体下降了14.29%。第四行销售额上升,导致累计增长率上升到0.714。而到了第五行,销售额上升了20%,对应的累计增长率上升到1,表示销售额在这个时间段内总体增长了100%。
希望这份攻略对你有所帮助。
本文链接:http://task.lmcjl.com/news/17571.html