You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python DataFrame调用pivot_table仅返回索引列无列标题问题

pandas透视表不显示统计列的解决方法

问题根因

  1. 原始数据存在脏值:你定义的Personality列中,第5个取值为Sania \n Mirza,带有换行符和多余空格,会被识别为和Sania Mirza不同的独立取值;最后一个取值Venus Willians存在拼写错误,也和你预期的Venus Williams不匹配,会额外生成多余列。
  2. 部分场景下pandas默认显示配置限制了列的展示数量,导致列被折叠隐藏。
  3. 透视表写法中同时指定columns和values为同一字段,存在微小歧义可能引发计数异常。

解决步骤

1. 先清洗原始数据

对Personality字段做标准化处理,去除空白字符、修正拼写错误:

# 去除字段值前后的所有空白、换行、制表符
df['Personality'] = df['Personality'].str.strip()
# 修正Venus的拼写错误(匹配你预期的输出结果)
df['Personality'] = df['Personality'].replace('Venus Willians', 'Venus Williams')

2. 调整透视表写法

用aggfunc='size'替代count,不需要重复指定values参数,逻辑更清晰无歧义:

result = df.pivot_table(
    index='Country',
    columns='Personality',
    aggfunc='size',
    fill_value=0
)

3. 调整pandas显示配置(针对列被折叠的场景)

如果运行后依然看不到列,修改pandas全局显示参数放开列限制:

# 显示所有列,不折叠
pd.set_option('display.max_columns', None)
# 取消列宽限制
pd.set_option('display.max_colwidth', None)
# 打印查看结果
print(result)

运行后即可得到你预期的输出结果。

内容的提问来源于stack exchange,提问作者ds_student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:18:02