首页 > 解决方案 > Python Pandas 中的转置

问题描述

我有下表。

Item Id Desc    Values
M1  Color   Red
M1  Weight  100GR
M1  Type    Mouse
M1  Company Lenovo
M1  Wireless    Yes
M1  Battery Yes
M2  Color   Green
M2  Weight  150GR
M2  Type    KB
M2  Company Lenovo
M2  Wireless    No
M2  Battery No
M3  Color   Yellow
M3  Weight  100GR
M3  Type    Headphone
M3  Company MS
M3  Wireless    Yes
M3  Battery No

预期输出:

Item Id Color  Weight   Type    Company Wireless    Battery
M1      Red    100GR    Mouse    Lenovo  Yes        Yes
M2     Green   150GR    KB       Lenovo   No        No
M3   Yellow    100GR    Headphone MS      Yes   No

原始文件包含数百万条记录。附件只是一个例子。

请帮我解决问题。我尝试了 .T 并尝试了循环,但无法将其设置正确。当我处理原始文件时,PC 会挂起循环。

抱歉,我找不到附加 Excel 文件的选项。

标签: pythonnumpytranspose

解决方案


你可以试试像 pivot_tables 这样的东西。

将熊猫导入为 pd

df = pd.read_csv('data.csv')

df2 = pd.pivot_table(df, values='Values', index = ['ItemId']​​, columns=['Desc'], aggfunc=lambda x: ''.join(x))

打印(df2.head())

使用索引和列来获得不同的结果。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html


推荐阅读