[英]Build Contingency Table in Python
我正在嘗試使用pandas在python中建立一個列聯表。 這是我的數據看起來像熊貓數據框
InvoiceNo Item Quantity
123 a 1
123 b 2
123 c 1
124 a 1
124 d 3
125 c 1
125 b 2
因此,我需要建立一個表格,在這里我可以輕松地選擇一起購買的物品,如下所示
一起購買的物品:
a b c d
a 2 1 1 1
b 1 2 2 0
c 1 2 2 0
d 1 0 0 1
在這里,對角線元素代表所有發票中物料的頻率。
如何有效地構建此結構?
將DataFrame.merge
與交叉crosstab
交叉連接一起使用,並用於清理索引和列名DataFrame.rename_axis
:
df = df.merge(df, on='InvoiceNo')
df = pd.crosstab(df['Item_x'], df['Item_y']).rename_axis(None).rename_axis(None, axis=1)
print (df)
a b c d
a 2 1 1 1
b 1 2 2 0
c 1 2 2 0
d 1 0 0 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.