Python Pandas:将行转换为列标题

发布于 2021-01-29 19:37:13

我有以下数据框:

Year    Country          medal    no of medals
1896    Afghanistan      Gold        5
1896    Afghanistan      Silver      4
1896    Afghanistan      Bronze      3
1896    Algeria          Gold        1
1896    Algeria          Silver      2
1896    Algeria          Bronze      3

我要这样

Year    Country      Gold   Silver   Bronze
1896    Afghanistan    5      4         3
1896    Algeria        1      2         3

堆叠/堆叠似乎不起作用。

关注者
0
被浏览
371
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您正在寻找pivot_table

    In [11]: medals = df.pivot_table('no of medals', ['Year', 'Country'], 'medal')
    
    In [12]: medals
    Out[12]:
    medal             Bronze  Gold  Silver
    Year Country
    1896 Afghanistan       3     5       4
         Algeria           3     1       2
    

    以及是否要重新排列列:

    In [12]: medals.reindex_axis(['Gold', 'Silver', 'Bronze'], axis=1)
    Out[12]:
    medal             Gold  Silver  Bronze
    Year Country
    1896 Afghanistan     5       4       3
         Algeria         1       2       3
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看