簡體   English   中英

計算按另一列分組的多對列之間的變化百分比

[英]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

在這里你可以使用 shift

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

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM