[英]Pivot table with list entries pandas data frame
我有一個數據框,其中的條目如下所示:
customer_id products_purchased
1 A,B,D,Q
2 B,K,T
3 A
4 M,H,U,R,T,Z
1 A,U,C
3 P,T
.
.
.
我想生成一個數據透視表,其中包含 customer_id,然后是每個產品的列和計數(如果客戶從未購買過該產品,則為 0)。 對於上面的例子:
customer_id A B C D H K M P Q R T U Z
1 2 1 1 1 0 0 0 0 1 0 0 1 0
2 0 1 0 0 0 1 0 0 0 0 1 0 0
3 1 0 0 0 0 0 0 1 0 0 1 0 0
4 0 0 0 0 1 0 1 0 0 1 1 1 0
還有一個日期時間列來指示購買的時間,但這對於這個特定問題並不重要。
這是str.get_dummies
然后是 groupby:
(df['products_purchased'].str.get_dummies(',')
.groupby(df['customer_id']).sum()
.reset_index()
)
輸出:
customer_id A B C D H K M P Q R T U Z
0 1 2 1 1 1 0 0 0 0 1 0 0 1 0
1 2 0 1 0 0 0 1 0 0 0 0 1 0 0
2 3 1 0 0 0 0 0 0 1 0 0 1 0 0
3 4 0 0 0 0 1 0 1 0 0 1 1 1 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.