计算由另一列分组的多对列之间的更改百分比

2024-03-29 15:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

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在10月20日和10月20日之间,然后是11月20日和12月20日等。对于y也一样

有关于如何做的帮助吗


Tags: 数据change百分比var1pctnov20dec20oct20
3条回答

在这里你可以使用shift

df_per = (df-df.shift(axis=1))/df.shift(axis=1)

enter image description here

设置索引并使用pct\U更改

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
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())

相关问题 更多 >