簡體   English   中英

用Python建立列聯表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM