pandas - 熊猫更改数据透视表中列的顺序
问题描述
数据透视表的表示看起来不像我正在寻找的东西,更具体地说是结果行的顺序。我不知道如何以正确的方式改变它。
示例 df:
test_df = pd.DataFrame({'name':['name_1','name_1','name_1','name_2','name_2','name_2','name_3','name_3','name_3'],
'month':[1,2,3,1,2,3,1,2,3],
'salary':[100,100,100,110,110,110,120,120,120],
'status':[1,1,2,1,1,3,2,2,1]})
制作枢轴的代码:
test_df.pivot_table(index='name', columns=['month'],
values=['salary', 'status'])
实际输出:
salary status
month 1 2 3 1 2 3
name
name_1 100 100 100 1 1 2
name_2 110 110 110 1 1 3
name_3 120 120 120 2 2 1
我想看到的输出:
salary status salary status salary status
month 1 1 2 2 3 3
name
name_1 100 1 100 1 100 2
name_2 110 1 110 1 110 3
name_3 120 2 120 2 120 1
解决方案
您将使用sort_index
,指示轴和级别:
piv = test_df.pivot_table(index='name', columns=['month'],
values=['salary', 'status'])
piv.sort_index(axis='columns', level='month')
# salary status salary status salary status
#month 1 1 2 2 3 3
#name
#name_1 100 1 100 1 100 2
#name_2 110 1 110 1 110 3
#name_3 120 2 120 2 120 1
推荐阅读
- python - pytorch中的层规范化
- docker - Docker 容器日志文件丢失
- django - django-channels 在连接时将用户添加到多个组
- recursion - Rust - 在递归函数中收集 Vec 的切片
- python - 将循环输出转换为列表 python
- c++ - Visual Studio (C++) 中的构建错误(文件/目录丢失?)
- node.js - MongoDB,在数组中填充嵌套对象
- ansible - 角色内的 Ansible 复制模块
- web - 为什么我新创建的 Heroku 应用打不开?
- ruby-on-rails - Rails 模型的多个嵌套路由