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

Pandas透视表选择含空值列作索引时分组结果丢失问题咨询

现象原因

这个问题是两点原因共同导致的:

  1. pd.pivot_table的默认参数dropna=True,作用是自动剔除所有包含空值的分组键组合。你第一次调用时把存在空值的Sources列加入了索引分组,所有Sources为空的行对应的分组组合会被默认过滤,所以Living room类别的分组直接消失。
  2. 你尝试修复时的参数添加位置有误:你是把Sources从索引中移除后才加的dropna=False,此时参与分组的键里已经没有带空值的字段,该参数自然无法解决「带Sources作为索引时空值分组被删除」的问题。

正确修复方案

把Sources放回索引,同时添加dropna=False参数即可:

df_pivot = pd.pivot_table(df, 
                          index =['Country', 'Parent', 'Category', 'Distribution', 'Sources'], 
                          columns ='Period', 
                          values =['Sales 19', 'Sales 20', 'Sales 21'],
                          dropna=False)

如果你使用的pandas版本低于1.3.0,存在旧版本中dropna=False对多索引分组不生效的已知bug,可以提前把Sources列的空值填充为占位符后再做透视,示例如下:

# 空值填充为自定义占位符,比如'无来源'
df['Sources'] = df['Sources'].fillna('无来源')
# 正常生成透视表即可保留原空值对应的分组
df_pivot = pd.pivot_table(df, 
                          index =['Country', 'Parent', 'Category', 'Distribution', 'Sources'], 
                          columns ='Period', 
                          values =['Sales 19', 'Sales 20', 'Sales 21'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:09:03