Pandas: add crosstab totals

后端 未结 3 1060
有刺的猬
有刺的猬 2020-12-20 20:53

How can I add to my crosstab an additional row and an additional column for the totals?

df = pd.DataFrame({\"A\": np.random.randint(0,2,100), \"B\" : np.rand         


        
3条回答
  •  自闭症患者
    2020-12-20 21:51

    In fact pandas.crosstab already provides an option margins, which does exactly what you want.

    > df = pd.DataFrame({"A": np.random.randint(0,2,100), "B" : np.random.randint(0,2,100)})
    > pd.crosstab(df.A, df.B, margins=True)
    B     0   1  All
    A               
    0    26  21   47
    1    25  28   53
    All  51  49  100
    

    Basically, by setting margins=True, the resulting frequency table will add an "All" column and an "All" row that compute the subtotals.

提交回复
热议问题