熊猫将“国家/地区”列合并为单行

时间:2020-09-29 16:47:13

标签: python pandas numpy dataframe

Current Dataset [Result]

我当前的数据集看起来像上面的图片(第一张图片)。 我想要这样的形状(第二张图片):

国家1945 1950 1951 阿富汗0.01 0.08 0.09 津巴布韦0.5 0.6 0.7

因此,单个国家/地区的每个数据都在同一行中。

有人可以使用Python和Pandas帮助我实现这一目标

2 个答案:

答案 0 :(得分:1)

尝试:

df = df.set_index(['Entity','Year'],append=True).unstack()

答案 1 :(得分:1)

查看您的数据和所需的输出,我看到以下转换:

  • 将国家/地区名称设置为每一行的索引
  • 将年份插入列,然后在索引年份的交点处,选择“年度CO2排放量”的值

幸运的是,pandas.DataFrame具有pivot方法,两者都像这样:

>>> df
        Entity  Year  CO2Emissions
0  Afghanistan  1945             1
1  Afghanistan  1950             2
2     Zimbabwe  1950             3
3     Zimbabwe  1955             4
>>> df.pivot('Entity', columns='Year', values='CO2Emissions')
Year         1945  1950  1955
Entity
Afghanistan   1.0   2.0   NaN
Zimbabwe      NaN   3.0   4.0