pandas 计算元素之间的差值、比值——diff、pct_change
对于数据框,可以按照行或列,计算相邻两个元素的之间的差值或变化百分比,
有如下数据框:
>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6], ... 'b': [1, 1, 2, 3, 5, 8], ... 'c': [1, 4, 9, 16, 25, 36]}) >>> df a b c 0 1 1 1 1 2 1 4 2 3 2 9 3 4 3 16 4 5 5 25 5 6 8 36
一,计算元素之间的差值
计算数据框两个元素之间的差值,默认为上一行中的元素:
DataFrame.diff(periods=1, axis=0)
参数注释:
periods:默认值是1,平移的区间,periods为正整数表示向前平移,为负整数表示向后平移。
axis:平移的轴,axis=0,表示按照row进行平移,axis=1,表示按照列进行平移
默认情况下,计算当前元素和前一个元素的差值:
>>> df.diff()
a b c
0 NaN NaN NaN
1 1.0 0.0 3.0
2 1.0 1.0 5.0
3 1.0 1.0 7.0
4 1.0 2.0 9.0
5 1.0 3.0 11.0
二,计算元素之间的比值
当前元素和先前元素之间变化的比值,公式是 (current value - previsou value)/ previsou value, 默认情况下,计算与前一行的变化的百分比:
DataFrame.pct_change(periods=1, fill_method='pad', limit=None, freq=None, **kwargs)
参数注释:
- periods:平移的距离,默认值是1
- fill_method:如何处理NA,默认值是pad
- limit:填充的最大NA的数量,如果NA的数量大于limit,那么停止填充NA元素
计算当前元素和前一个元素的变化的百分比:
>>> df.pct_change()
a b c
0 NaN NaN NaN
1 1.000000 0.000000 3.000000
2 0.500000 1.000000 1.250000
3 0.333333 0.500000 0.777778
4 0.250000 0.666667 0.562500
5 0.200000 0.600000 0.440000
参考文档:
作者:悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。