我有一个类似下面的df,我想使用下面的代码将其转换为交叉表,
g= list('M'*75)+list('F'*75)
c =list('B'*51)+list('T'*24)+list('B'*49)+list('T'*26)
df=pd.DataFrame({'Gender':g,'City':c})
tbl=pd.crosstab(df['City'],df['Gender'])
交叉表:
Gender F M
City
B 49 51
T 26 24
如何获取交叉表结果的总和。即49 + 51 + 26 + 24
到目前为止,我已经使用了它,
tbl.sum().sum()
预期的O / P:
150
即使我得到了所需的结果,但我仍想知道是否需要在此使用两个链式sum
函数来解决此问题?
答案 0 :(得分:1)
我认为没有,您可以将DataFrame转换为numpy数组,然后不带任何轴调用numpy.sum
,因此将所有值sum
转换为标量:
print (tbl.values.sum())
150
print (np.sum(tbl.values))
150