我有一个CSV表,其数据类似于以下内容:
Customer Product Quantity
C1 P1 2
C2 P1 3
C1 P2 4
C3 P2 1
C3 P1 0
C2 P2 5
我想将其转换为以下格式:
Customer P1 P2
C1 2 4
C2 3 5
C3 1 0
我知道我可以使用pandas导入文件,如下所示:
import pandas as pd
data = pd.read_csv('my_file.csv')
但是,之后我不知道该怎么做。
我曾尝试使用pandas多索引,但无法理解它。如何重新构建新的CSV数据对象?任何帮助将不胜感激,谢谢。
P.S。我可以考虑多个指数完成我的问题。例如,假设我们在表的左侧添加了一列,其中包含购买日期。怎么办呢?
答案 0 :(得分:5)
这是pivot
操作的示例:
>>> df
Customer Product Quantity
0 C1 P1 2
1 C2 P1 3
2 C1 P2 4
3 C3 P2 1
4 C3 P1 0
5 C2 P2 5
>>> df.pivot(index="Customer", columns="Product", values="Quantity")
Product P1 P2
Customer
C1 2 4
C2 3 5
C3 0 1
建议阅读reshaping上的文档部分。
(PS:我假设您的文件实际上有逗号,即使您没有显示任何内容 - 否则pd.read_csv
需要额外的参数,例如delim_whitespace=True
或其他内容。)