使用Pandas整理数据创建带值列名时透视表首列不可见的解决建议
Pandas透视表行索引转普通列的解决方法
你当前的代码将Box设为透视表的行索引,导致它不会以普通列的形式显示。要实现期望的结果,只需将行索引转换为普通列,步骤如下:
解决方案代码
import pandas as pd # 构造原始数据(实际使用时可替换为你的数据读取逻辑) df = pd.DataFrame({ 'name': ['dd1', 'dd1', 'dd2', 'dd3', 'dd5'], 'Box': ['HDL', 'LDL', 'LDL', 'HDL', 'HDL'], 'stat': [False, False, False, True, False], 'size': [3, 3, 4, 1, 5] }) # 生成透视表 pivot_df = pd.pivot_table( df, values='size', index='Box', columns='stat', aggfunc=sum, fill_value=0 ) # 将行索引转为普通列,并设置对应列名 pivot_df = pivot_df.reset_index() pivot_df.columns = ['Box', 'TRUE', 'FALSE'] print(pivot_df)
输出结果
Box TRUE FALSE 0 HDL 1 8 1 LDL 0 7
关键说明
reset_index():将透视表的行索引(这里是Box)转换为DataFrame的普通列- 手动设置列名:匹配你期望的
TRUE/FALSE表头,确保输出格式完全符合要求
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

