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

使用pd.pivot_table后出现意外重复值的问题排查

问题:透视表出现重复索引与错误数据的原因分析

数据集信息

>>> df_anon.head()
    a   b   c   d
0   1   30  1   929.3453
1   1   30  3   875.3986
2   1   30  5   849.9972
3   1   51  1   571.8364
4   1   51  2   508.9944

>>> df_anon[["a", "b", "c"]].nunique()
a    16665
b       61
c        6
dtype: int64

>>> df_anon.dtypes
a      int64
b      int64
c      int64
d    float64
dtype: object

>>> df_anon.groupby(["a", "b", "c"]).size().sort_values()
a      b   c
1      30  1    1
11114  35  1    1
       27  5    1
           3    1
           1    1
               ..
5571   51  4    1
           3    1
           2    1
5573   13  1    1
16665  33  6    1
Length: 112491, dtype: int64

从以上数据可确认,三元组(a, b, c)是唯一的(并非所有可能的组合都存在于数据中)。

透视表异常现象

执行以下代码生成透视表后,出现不符合预期的情况:

>>> df_anon_pivoted = df_anon.pivot_table(
    index=["a", "b"],
    columns=["c"],
    values=["d"],
)

>>> df_anon_pivoted.index.value_counts()
 a     b 
1395  21    6
1855  20    6
1856  1     6
      35    6
1857  8     6
           ..
937   57    6
938   34    6
2794  55    6
2795  54    2
1     30    1
Name: count, Length: 4169, dtype: int64

按逻辑,将c的不同值映射为透视表的列后,(a, b)作为索引应该是唯一的,但实际结果显示存在大量重复的(a, b)索引。

除此之外,透视表中还出现了原数据中不存在的错误条目:比如透视表中a=1, b=51, c=1对应的173.5975,实际在原始数据中属于a=2, b=30, c=1的组合:

>>> df_anon_pivoted.head()
d                                                   
c             1         2         3         4          5         6
a b                                                               
1 30   929.3453       NaN  875.3986       NaN   849.9972       NaN
  51   571.8364  508.9944  514.7396  593.0696   568.6159  598.0888
  51   173.5975       NaN  202.6101       NaN   190.2514       NaN
  51   741.7860  681.8020  697.6942  663.4423   748.3383  756.5396
  51  1131.7893       NaN  999.3353       NaN  1143.9245       NaN
>>> df_anon.query("d > 173.5974 and d < 173.5976")
a   b  c         d
2  30  1  173.5975

疑问

我忽略了什么?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:33:21