如何使用pivot_table或unstack生成所需格式的新pandas DataFrame
解决方案
方法1:处理已有pivot结果的多级列索引
你写的pivot_table代码已经完成了计数逻辑,只需要把两层的列索引拼接为单层即可得到无层级的独立列:
# 原有统计代码 new_1 = df.pivot_table(index=['ACCIDENT_NO'], columns= ['SEX','Age_Group'], aggfunc=len, fill_value=0) # 拼接列名,消除层级 new_1.columns = new_1.columns.map(lambda col: f"{col[0]}_{col[1]}") # 可选:把索引中的ACCIDENT_NO恢复为普通列 new_1 = new_1.reset_index()
方法2:提前合并字段再统计
也可以先把性别和年龄组合并为一个分类字段,再做透视,逻辑更直观:
# 构造合并后的分类字段 df['sex_age'] = df['SEX'] + '_' + df['Age_Group'] # 直接透视计数 result = df.pivot_table( index='ACCIDENT_NO', columns='sex_age', aggfunc='size', fill_value=0 ).reset_index()
内容的提问来源于stack exchange,提问作者WMD
相关产品推荐
相关产品推荐

