将数据帧值更改为列作为索引

2024-09-29 19:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

遇到更改值和列名的问题

例如,我有这样的数据帧:

       Value  2013  2014 Company Name
1  Employees    10    12     Aviators
2  Computers    20     2     Aviators
3  Employees     4    13       Mouses
4  Computers     1     8       Mouses
5   Monitors     5     1       Mouses

我需要将值作为列,将年作为值或索引(更好的值),如下所示:

      Employees  Computers  Monitors Company name
2013         10         20       NaN     Aviators
2014         12          2       NaN     Aviators
2013          4          1       5.0       Mouses
2014         13          8       1.0       Mouses

所以我只需要更改年份和值,公司名称列应该像示例中那样放置

最简单的方法是什么


Tags: 数据name名称value公司nancompany年份
1条回答
网友
1楼 · 发布于 2024-09-29 19:27:40

^{}^{}一起使用:

df = df.pivot_table(index=['Company Name'], 
                    columns='Value',
                    aggfunc='sum').stack(level=0).reset_index(level=0)

Value Company Name  Computers  Employees  Monitors
2013      Aviators       20.0       10.0       NaN
2014      Aviators        2.0       12.0       NaN
2013        Mouses        1.0        4.0       5.0
2014        Mouses        8.0       13.0       1.0

要删除列索引名,请使用rename_axis

df = df.rename_axis(None, axis='columns')

     Company Name  Computers  Employees  Monitors
2013     Aviators       20.0       10.0       NaN
2014     Aviators        2.0       12.0       NaN
2013       Mouses        1.0        4.0       5.0
2014       Mouses        8.0       13.0       1.0

相关问题 更多 >

    热门问题