對於數據框,可以按照行或列,計算相鄰兩個元素的之間的差值或變化百分比,
有如下數據框:
>>> 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
參考文檔: