python - 如何展平这个 MultiIndex 表?
问题描述
我用 MultiIndex 创建了一个数据透视表。
import pandas as pd
treatcriteria_daily_data = pd.read_csv(r"treatcriteria_evolution.csv", sep=';')
variations_data = treatcriteria_daily_data.groupby(['startdate_dayweek','startdate_weekyear'],as_index = False).sum().pivot('startdate_dayweek','startdate_weekyear').fillna(0)
print(variations_data)
print(variations_data.columns)
结果:
mc_cpu_hours ...
startdate_weekyear 27 28 ... 30 31
startdate_dayweek ...
1 527644.000731 349896.850976 ... 176007.786269 177517.591864
2 468053.338183 481313.693908 ... 364379.872622 0.000000
3 517548.838022 372385.568095 ... 366155.953075 0.000000
4 573669.325129 378069.713821 ... 375948.240935 0.000000
5 515710.534260 385937.231788 ... 366151.336263 0.000000
6 511711.421986 385856.666340 ... 395790.387672 0.000000
7 841073.028107 842468.209151 ... 700936.336812 686023.780120
[7 rows x 5 columns]
MultiIndex(levels=[['mc_cpu_hours'], [27, 28, 29, 30, 31]],
codes=[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4]],
names=[None, 'startdate_weekyear'])
我怎样才能继续获得这张桌子?
27 28 ... 30 31
1 527644.000731 349896.850976 ... 176007.786269 177517.591864
2 468053.338183 481313.693908 ... 364379.872622 0.000000
3 517548.838022 372385.568095 ... 366155.953075 0.000000
4 573669.325129 378069.713821 ... 375948.240935 0.000000
5 515710.534260 385937.231788 ... 366151.336263 0.000000
6 511711.421986 385856.666340 ... 395790.387672 0.000000
7 841073.028107 842468.209151 ... 700936.336812 686023.780120
我尝试了 map/join (扁平化多索引列的简洁方法),但我收到了以下错误消息:
类型错误:序列项 1:预期的 str 实例,找到 int
谢谢你。
解决方案
您可以尝试在您的数据透视之前将 startdate_weekyear 转换为字符串并重试地图解决方案吗?我希望这个对你有用
推荐阅读
- android - import android.widget.Button 未使用的导入指令
- git - 测试 GIT 功能分支
- vue.js - 深度观察对象,但收到 eslint 警告
- amazon-web-services - AWS Live 流式传输并保存流式传输的视频
- swift - 协议扩展使用 where 子句在 Swift 中不起作用
- docker - 如何连接 Dockerized Apollo GraphQL API
- javascript - 如何更改任何带有 chrome 扩展名的网页的源代码?
- java - 如何通过 Android 加密发布和获取交易
- python - 在numpy中加载txt文件时出现OSError
- python - sqlmlutils:使用 python 处理数据,然后在不离开数据库的情况下相应地更新记录