python pandas 相同类别的交叉表数据透视表

python pandas cross tab pivot by same category

我有以下数据框 df:

Product | Client_ID | transaction_id | return
A          984574         123             Y
B          984574         123             0
A          365366         234             0
A          467683         356             Y

我想创建一个数据透视表,以查看客户在 return 一件商品时在同一笔交易中购买了哪些其他产品。

所以这将是上面示例的输出:

Product   A     B 
A         0     1
B         0     0

我试过了,但出现错误:

pd.pivot_table(df,index=["return",'Product'],values=["Client_id"],
               columns=["Product"],aggfunc=lambda x: len(x.unique()))

ValueError: Grouper for 'Product' not 1-dimensional
d1 = df.merge(df, on='Client_ID').query('Product_x != Product_y')
pd.crosstab(d1.Product_x, d1.Product_y)

Product_y  A  B
Product_x      
A          0  1
B          1  0