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
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.