是否有一种方法可以在Pandas python中具有多个列的交叉表(频率表)中获得Total列 &g



我需要一个总列我的旁边索引(Center_Name)(. 交叉表中有边距函数,但仅限于一列。我用下面的代码在交叉表中包含多个列,但无法添加一个总列。

我使用的代码(从Excel导出数据):

cols=['Gender','QAge_Post']
q2=(nb.melt(id_vars='Center_Name',value_vars=cols)
.groupby([pd.Grouper(key='Center_Name'),'value'])
.size()
.unstack(fill_value=0))
q2

我有50行,列Center_Name, Gender, QAge_Post。我使用Center_name作为索引,其余两个作为列。

输出:

使用DataFrame.insert,对于sum只选择MaleFemale列,对于sum只选择DataFrame.loc列:

df.insert(0, 'Total', df[['Male','Female']].sum(axis=1))
df.loc['Total'] = df.sum()
print (df)
Total  18 - 25 Years  26 - 35 years  Male  Female
Center_Name                                                   
Delhi           13              8              5     3      10
Kolkata          8              2              6     4       4
Lucknow         12              7              5     5       7
Mumbai          11              0             11     2       9
Pune             6              3              3     5       1
Total           50             20             30    19      31

最新更新