python - 如何在这个 pandas 数据框上正确使用 pivot ?
问题描述
我有以下df:
Item Service Damage Type Price
A Fast 3.5 1 15.48403728
A Slow 3.5 1 17.41954194
B Fast 5 1 19.3550466
B Slow 5 1 21.29055126
C Fast 5.5 1 23.22605592
and so on
我想把它变成这种格式:
Item Damage Type Price_Fast Price_slow
所以第一行是:
Item Damage Type Price_Fast Price_slow
A 3.5 1 15.4840.. 17.41954...
我试过了:
df.pivot(index=['Item', 'Damage', 'Type'],columns='Service', values='Price')
但它抛出了这个错误:
ValueError: Length of passed values is 2340, index implies 3
解决方案
要准确获得您想要使用的数据框布局
dfData = dfRaw.pivot_table(index=['Item', 'Damage', 'Type'],columns='Service', values='Price')
像@CJR建议后跟
dfData.reset_index(inplace=True)
展平数据框和
dfData.rename(columns={'Fast': 'Price_fast'}, inplace=True)
dfData.rename(columns={'Slow': 'Price_slow'}, inplace=True)
获取您想要的列名。
然后使用
dfNew.columns = dfNew.columns.values
摆脱自定义索引标签并完成(感谢@Akaisteph7 指出我之前的解决方案还没有完成。)
推荐阅读
- c# - 如何正确使用 c# 通过 ADO.net 2.0 执行不带值的存储过程?
- android - 在活动之间传递位图失败
- android - 地图 apk 不要求位置访问权限
- ios - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[ABDC.File encodeWithCoder:]:
- ionic-framework - 如何更改离子弹出框的宽度
- python-3.x - OSError: [Errno 22] udp 连接的参数无效
- flutter - 如何在gridView中加载所有图像?
- protractor - 量角器负载测试浏览器选项卡无法正常工作
- javascript - 如何在 React 中编辑和删除用户信息(MongoDB)
- javascript - 一次更改对象数组中的多个属性