我目前有如下数据:
Afghanistan_co2 Afghanistan_income Year Afghanistan_population Albania_co2
1 NaN 603 1801 3280000 NaN
2 NaN 603 1802 3280000 NaN
3 NaN 603 1803 3280000 NaN
4 NaN 603 1804 3280000 NaN
,我想用melt把它变成这样:
但是使用标签代替,例如“年”,“国家”,“人口价值”,“二氧化碳价值”,“收入价值”
这是一个包含许多行和列的大型数据集,所以我不知道该怎么办,到目前为止我只有这样:
pd.melt(merged_countries_final, id_vars=['Year'])
我这样做是因为数据集中确实存在一个名为“年份”的列。
我该怎么办?
答案 0 :(得分:0)
只需将str.split
与您的列一起使用
df.set_index('Year',inplace=True)
df.columns=pd.MultiIndex.from_tuples(df.columns.str.split('_').map(tuple))
df=df.stack(level=0).reset_index().rename(columns={'level_1':'Country'})
df
Year Country co2 income population
0 1801 Afghanistan NaN 603.0 3280000.0
1 1802 Afghanistan NaN 603.0 3280000.0
2 1803 Afghanistan NaN 603.0 3280000.0
3 1804 Afghanistan NaN 603.0 3280000.0