为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas 将国家/地区列合并为单行

Pandas 将国家/地区列合并为单行

ABOUTYOU 2023-09-19 15:25:30
我当前的数据集类似于上图(第一张图片)。我想要它的形状像这样(第二张图):国家 1945 1950 1951 阿富汗 0.01 0.08 0.09 津巴布韦 0.5 0.6 0.7因此,单个国家/地区的每个数据都位于一行中。有人可以帮我使用 Python 和 Pandas 实现这个目标吗
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

尝试:

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


查看完整回答
反对 回复 2023-09-19
?
大话西游666

TA贡献1817条经验 获得超14个赞

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

  • 将国家/地区名称设置为每行的索引

  • 将年份旋转到列中,并在索引和年份的交集处选择年度二氧化碳排放量的值

幸运的是,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


查看完整回答
反对 回复 2023-09-19
  • 2 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信