簡體   English   中英

如何在Pandas數據框中將長格式轉換為寬格式?

[英]How to convert the long to wide format in Pandas dataframe?

我有以下格式的數據框df

 Date   TLRA_CAPE      TLRA_Pct   B_CAPE     B_Pct    RC_CAPE     RC_Pct
 1/1/2000  10              0.20        30        0.40        50       0.60
 2/1/2000  15              0.25        35        0.45        55       0.65
 3/1/2000  17              0.27        37        0.47        57       0.6

我需要轉換成以下格式

 Date      Variable     CAPE     Pct   
 1/1/2000   TLRA        10       0.20
 2/1/2000   TLRA        15       0.25
 3/1/2000   TLRA         17      0.27 
1/1/2000    B            30      0.40
2/1/2000    B            35      0.45
3/1/2000    B            37      0.47
1/1/2000    RC           50      0.60
2/1/2000    RC            55     0.65
3/1/2000    RC            57     0.6

我正在努力轉換為所需的格式。 我嘗試使用pd.meltpd.pivot但是這些沒有用。

更改列后,您可以使用wide_to_long ,並且同時具有PCT和Pct,我認為這是錯別字,如果沒有,請執行df.columns=df.columns.str.upper()

df=df.set_index('Date')
df.columns=df.columns.str.split('_').map(lambda x : '_'.join(x[::-1]))
pd.wide_to_long(df.reset_index(),['CAPE','Pct'],i='Date',j='Variable',sep='_',suffix='\w+')
Out[63]: 
                   CAPE   Pct
Date     Variable            
1/1/2000 TLRA        10  0.20
2/1/2000 TLRA        15  0.25
3/1/2000 TLRA        17  0.27
1/1/2000 B           30  0.40
2/1/2000 B           35  0.45
3/1/2000 B           37  0.47
1/1/2000 RC          50  0.60
2/1/2000 RC          55  0.65
3/1/2000 RC          57  0.60

暫無
暫無

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

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