Python Pandas多列交叉表(频数表)添加合计列与合计行方法咨询
多列交叉表添加合计列与合计行实现方法
你可以在已生成的交叉表基础上直接追加合计内容,无需调整原有交叉表生成逻辑,具体实现如下:
- 新增行合计列:对每行的所有列求和,追加为新的
合计列,放在侧边索引Center_Name之后 - 新增全局合计行:对每列的所有行求和,追加为新的
合计行,放在表格末尾
完整可运行代码
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['合计'] = q2.sum(axis=1) # 追加全局合计行 q2.loc['合计'] = q2.sum(axis=0) q2
注意:当前交叉表同时包含年龄、性别两个独立维度的列,单条样本会同时归属1个年龄分类和1个性别分类,因此默认求和得到的合计值会是对应样本量的2倍。如果需要统计各中心的实际样本量,可基于源数据的唯一标识去重计数,或分别生成年龄维度、性别维度的子合计列。
内容的提问来源于stack exchange,提问作者Benjamin Roy
相关产品推荐
相关产品推荐

