簡體   English   中英

在pandas數據框中透視表

[英]Pivoting tables in a pandas dataframe

我有一個要求,我在嘗試計算值並將它們放在數據透視表中。

這是我的數據幀,

  Cola        Colb          
 Apple    Rippened 
Orange    Rippened
 Apple  UnRippened
 Mango  UnRippened

我希望輸出像這樣,

        Rippened  UnRippened
Apple          1           1
Mango          0           1
Orange         1           0

請分享您的想法。

我喜歡這個問題....

選項1

pd.get_dummies(df.Cola).T.dot(pd.get_dummies(df.Colb))

        Rippened  UnRippened
Apple          1           1
Mango          0           1
Orange         1           0

選項2

i, r = pd.factorize(df.Cola.values)
j, c = pd.factorize(df.Colb.values)
n, m = r.size, c.size
b = np.bincount(i * m + j, minlength=n * m).reshape(n, m)

pd.DataFrame(b, r, c)

        Rippened  UnRippened
Apple          1           1
Orange         1           0
Mango          0           1

選項3

df.groupby(['Cola', 'Colb']).size().unstack(fill_value=0)

Colb    Rippened  UnRippened
Cola                        
Apple          1           1
Mango          0           1
Orange         1           0

選項4

df.groupby('Cola').Colb.value_counts().unstack(fill_value=0)

Colb    Rippened  UnRippened
Cola                        
Apple          1           1
Mango          0           1
Orange         1           0

使用我最喜歡的: pd.crosstab

df = pd.crosstab(df.Cola, df.Colb)
print(df)

Colb    Rippened  UnRippened
Cola                        
Apple          1           1
Mango          0           1
Orange         1           0

IIUC:

In [178]: d.pivot_table(index='Cola', columns='Colb', aggfunc='size', fill_value=0)
Out[178]:
Colb    Rippened  UnRippened
Cola
Apple          1           1
Mango          0           1
Orange         1           0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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