大表如何在熊猫中使用融化功能?

时间:2019-01-15 03:44:04

标签: python pandas

我目前有如下数据:

    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把它变成这样:

formatted data

但是使用标签代替,例如“年”,“国家”,“人口价值”,“二氧化碳价值”,“收入价值”

这是一个包含许多行和列的大型数据集,所以我不知道该怎么办,到目前为止我只有这样:

pd.melt(merged_countries_final, id_vars=['Year']) 

我这样做是因为数据集中确实存在一个名为“年份”的列。

我该怎么办?

1 个答案:

答案 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
相关问题