[英]Calculate percentage of change between multiple pairs of columns grouped by another column
我有以下数据框:
VAR1 OCT20 NOV20 DEC20 JAN21 ...
x 1 1.6 2.4 3.3
y 2.1 1 0.7 5.4
z 2 3.1 0.5 2.1
我想计算的是,VAR1 列中的每一行,每个月之间的变化百分比(与其前一个月相比,不是所有可能的对)。 因此,例如对于x: pct_change
在 OCT20 和x: pct_change
之间,然后是 NOV20 和 DEC20 等。然后对于y
。
有关如何执行此操作的任何帮助?
import pandas as pd
data = [['VAR1','OCT20', 'NOV20', 'DEC20','JAN21'],
['x',1,1.6,2.4,3.3],
['y',2.1,1,0.7,5.4],
['z',2,3.1,0.5,2.1]]
df = pd.DataFrame(data[1:], columns=data[0])
df = df.T.iloc[1:]
print(df.pct_change())
设置索引并使用 pct_change
df.set_index('VAR1').pct_change(axis=1)
OCT20 NOV20 DEC20 JAN21
VAR1
x NaN 0.60000 0.50000 0.375000
y NaN -0.52381 -0.30000 6.714286
z NaN 0.55000 -0.83871 3.200000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.