2017-06-22 190 views
1

交叉表支点,我有以下数据帧DF:蟒蛇大熊猫由同一类别

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

我想创造一个支点见客户在同一事务买什么其他产品时,他们返回一个项目。

因此,这将是上面的例子输出:

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 
+0

不应该b排山坳也是1 ? – piRSquared

回答

1
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