我将尝试重塑给定的pandas dataframe两天了。我想将我的多索引dataframe转换为多列形式,但是使用pd.stack()、pd.unstack()、pd.melt()等方法都失败了。
给出一个通用的多索引dataframe如下:
import pandas
df = pandas.DataFrame({'Scenario' : ['Scen1', 'Scen1', 'Scen1', 'Scen1',
'Scen1', 'Scen1', 'Scen2','Scen2',
'Scen2', 'Scen2','Scen2','Scen2'],
'Tech' : ['x', 'y', 'z', 'x', 'y', 'z',
'x', 'y', 'z', 'x', 'y', 'z'],
'Year' : ['2010', '2010', '2010',
'2015', '2015', '2015',
'2010', '2010', '2010',
'2015', '2015', '2015'],
'Sum' : ['1', '2', '3', '4',
'5', '6', '7', '8',
'9', '10', '11', '12']})
df.set_index(['Scenario', 'Tech'], inplace=True)
print(df)
Sum Year
Scenario Tech
Scen1 x 1 2010
y 2 2010
z 3 2010
x 4 2015
y 5 2015
z 6 2015
Scen2 x 7 2010
y 8 2010
z 9 2010
x 10 2015
y 11 2015
z 12 2015
然而,我想把它转换成以下形式:
2010 2015
Tech Scen1 Scen2 Scen1 Scen2
x ... ... ... ...
y ... ... ... ...
z ... ... ... ...
我正在使用Python 3.7 64位版本,pandas版本为0.23.4,希望能得到一些有用的提示和可能的解决方案,以帮助我解决问题。