簡體   English   中英

python pandas dataframe 熔體多指數多級

[英]python pandas dataframe Melt multiindex multi-levels

我有一個具有以下結構的 DF:

                    | Level           | Rate      |
Indicator           | AAA | BBB | CCC | XXX | YYY |
location   variable |
One        2017       0.69  0.22  0.71  0.02  0.98
           2018       0.31  0.15  0.78  0.03  0.96
           2019       0.55  0.19  0.82  0.04  0.83
Two        2017       0.31  0.33  0.93  0.11  0.21
           2018       0.24  0.35  0.01  0.12  0.14
           2019       0.16  0.25  0.12  0.14  0.17
Three      2017       0.58  0.11  0.55  0.21  0.27
           2018       0.75  0.10  0.68  0.22  0.25
           2019       0.42  0.08  0.71  0.23  0.41

我需要獲得以下結構的DF(只有一個級別):


location | variable | Indicator | Level | Rate |
------------------------------------------------
One      | 2017     | AAA       | 0.69  | NaN  |
...
Three    | 2019     | YYY       | NaN   | 0.41 |

我在下面做了幾次這樣的嘗試,但它們不起作用:

df.melt(col_level=0, id_vars = ['Location','Indicator','variable'] , value_vars = ['Level', 'Rate'])

任何幫助將不勝感激

使用DataFrame.stackDataFrame.rename_axisDataFrame.reset_index

df = df.stack().rename_axis(('location','variable','indicator')).reset_index()
print (df.head(10))
  location  variable indicator  Level  Rate
0      One      2017       AAA   0.69   NaN
1      One      2017       BBB   0.22   NaN
2      One      2017       CCC   0.71   NaN
3      One      2017       XXX    NaN  0.02
4      One      2017       YYY    NaN  0.98
5      One      2018       AAA   0.31   NaN
6      One      2018       BBB   0.15   NaN
7      One      2018       CCC   0.78   NaN
8      One      2018       XXX    NaN  0.03
9      One      2018       YYY    NaN  0.96

暫無
暫無

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

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