Python:如何透视此表

Python:如何透视此表,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个像这样的df df = pd.DataFrame({'Customer ID':[1,1,1,1,1,1,2,2,2,2,2,2], 'Customer VisitNo':[1,1,1,2,2,2,1,1,1,1,2,2], 'Item Code':['A1','A1','A2','A3','A3','A1','B1','B2','B3','B3','B4','B3'], 'Ite

我有一个像这样的df

df = pd.DataFrame({'Customer ID':[1,1,1,1,1,1,2,2,2,2,2,2],
                  'Customer VisitNo':[1,1,1,2,2,2,1,1,1,1,2,2],
                  'Item Code':['A1','A1','A2','A3','A3','A1','B1','B2','B3','B3','B4','B3'],
                  'Item':['Ball','Ball','Bat','Glove','Glove','Ball','Pen','Mouse','Pencil',
                          'Pencil','Paper','Pencil']})
如何按客户ID、客户访问号和pivot对表进行分组以获得下表

这不是支点。你想要一个像这样的:

In [1684]: df.drop_duplicates().groupby(['Customer ID','Customer VisitNo'], as_index=False).agg(','.join)
Out[1684]:

   Customer ID  Customer VisitNo Item Code              Item
0            1                 1     A1,A2          Ball,Bat
1            1                 2     A3,A1        Glove,Ball
2            2                 1  B1,B2,B3  Pen,Mouse,Pencil
3            2                 2     B4,B3      Paper,Pencil
从df.groupby文档:

as_索引:bool,默认为True

对于聚合输出,返回组标签作为索引的对象。仅与数据帧输入相关。as_index=False实际上是“SQL风格”分组输出

这不是支点。你想要一个像这样的:

In [1684]: df.drop_duplicates().groupby(['Customer ID','Customer VisitNo'], as_index=False).agg(','.join)
Out[1684]:

   Customer ID  Customer VisitNo Item Code              Item
0            1                 1     A1,A2          Ball,Bat
1            1                 2     A3,A1        Glove,Ball
2            2                 1  B1,B2,B3  Pen,Mouse,Pencil
3            2                 2     B4,B3      Paper,Pencil
从df.groupby文档:

as_索引:bool,默认为True

对于聚合输出,返回组标签作为索引的对象。仅与数据帧输入相关。as_index=False实际上是“SQL风格”分组输出

不带drop\u duplicate unique

不带drop\u duplicate unique


as_index=False的基本原理是什么。这样你就不必在之后重置索引了?是的。检查我更新的答案的最后一部分。我已经把它放在那里了。as_index=False的基本原理是什么。这样你就不必在之后重置索引了?是的。检查我更新的答案的最后一部分。我把这个放在那里了。
df = pd.DataFrame({'Customer ID':[1,1,1,1,1,1,2,2,2,2,2,2],
                  'Customer VisitNo':[1,1,1,2,2,2,1,1,1,1,2,2],
                  'Item Code':['A1','A1','A2','A3','A3','A1','B1','B2','B3','B3','B4','B3'],
                  'Item':['Ball','Ball','Bat','Glove','Glove','Ball','Pen','Mouse','Pencil',
                          'Pencil','Paper','Pencil']})

df = df.drop_duplicates() 

result = df.groupby(['Customer ID','Customer VisitNo']).agg( ','.join)
result = result.reset_index()
print(result)