小编典典

Pandas:添加交叉表总计

python

如何在交叉表中添加总计的另一行和一列?

df = pd.DataFrame({"A": np.random.randint(0,2,100), "B" : np.random.randint(0,2,100)})
ct = pd.crosstab(new.A, new.B)
ct

在此处输入图片说明

我以为我会添加新列(通过对行求和而获得)

ct["Total"] = ct.0 + ct.1

但这不起作用。


阅读 364

收藏
2021-01-20

共1个答案

小编典典

这是因为“类似属性”的列访问不适用于整数列名。使用标准索引:

In [122]: ct["Total"] = ct[0] + ct[1]

In [123]: ct
Out[123]:
B   0   1  Total
A
0  26  24     50
1  30  20     50

请参阅文档本节末尾的警告:http : //pandas.pydata.org/pandas-
docs/stable/indexing.html#attribute-access

当您要使用行时,可以使用.loc

In [126]: ct.loc["Total"] = ct.loc[0] + ct.loc[1]

在这种情况下ct.loc["Total"]相当于ct.loc["Total", :]

2021-01-20