Pivoting tables in a pandas dataframe

后端 未结 3 1583
萌比男神i
萌比男神i 2021-01-06 05:11

I have a requirement where in I am trying to count the values and Put them in the pivot table.

This is my dataframe,

  Cola        Colb          
 Ap         


        
相关标签:
3条回答
  • 2021-01-06 05:31

    Using my favourite: pd.crosstab

    df = pd.crosstab(df.Cola, df.Colb)
    print(df)
    
    Colb    Rippened  UnRippened
    Cola                        
    Apple          1           1
    Mango          0           1
    Orange         1           0
    
    0 讨论(0)
  • 2021-01-06 05:44

    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
    
    0 讨论(0)
  • 2021-01-06 05:55

    I love this question....

    Option 1

    pd.get_dummies(df.Cola).T.dot(pd.get_dummies(df.Colb))
    
            Rippened  UnRippened
    Apple          1           1
    Mango          0           1
    Orange         1           0
    

    Option 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
    

    Option 3

    df.groupby(['Cola', 'Colb']).size().unstack(fill_value=0)
    
    Colb    Rippened  UnRippened
    Cola                        
    Apple          1           1
    Mango          0           1
    Orange         1           0
    

    Option 4

    df.groupby('Cola').Colb.value_counts().unstack(fill_value=0)
    
    Colb    Rippened  UnRippened
    Cola                        
    Apple          1           1
    Mango          0           1
    Orange         1           0
    
    0 讨论(0)
提交回复
热议问题