在pandas数据框中旋转表格

4
我有一个需求,我正在尝试计算值并将它们放入数据透视表中。
这是我的数据框:
  Cola        Colb          
 Apple    Rippened 
Orange    Rippened
 Apple  UnRippened
 Mango  UnRippened

我希望输出是这样的:
        Rippened  UnRippened
Apple          1           1
Mango          0           1
Orange         1           0

请分享您的想法。

重复问题 https://dev59.com/Q10a5IYBdhLWcg3wH1py#30679543 - Zero
3个回答

11

我喜欢这个问题....

选择1

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

        Rippened  UnRippened
Apple          1           1
Mango          0           1
Orange         1           0
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

8
使用我最喜欢的pd.crosstab
df = pd.crosstab(df.Cola, df.Colb)
print(df)

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

7

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接