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

 

 

 

 

 

 

参考文档:

pandas DataFrame

posted @ 2020-09-30 23:10  悦光阴  阅读(9023)  评论(0编辑  收藏  举报