2017-06-22 4 views
1

Ich habe folgenden Datenrahmen df:Python Pandas überquert Registerkarte Pivot von gleicher Kategorie

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

Ich wollte einen Dreh schaffen, um zu sehen, was andere Produkte Kunden in der gleichen Transaktion kaufen, wenn sie einen Artikel zurückgeben.

So würde dies die Ausgabe für das obige Beispiel sein:

Product A  B 
A   0  1 
B   0  0 

Ich versuche dies, aber eine Fehlermeldung erhalten:

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

Sollte B col A nicht auch rudern seine 1 ? – piRSquared

Antwort

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