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

Pandas绘制小时维度箱线图报Index contains duplicate entries错误求助

问题原因

你遇到的报错是因为unstack()操作要求待转换的行索引必须全局唯一:

  • 你用append=True将小时作为二级索引追加到原有索引后,全量数据的组合索引存在重复条目,因此触发报错
  • 分段截取数据时,对应片段的索引刚好没有重复,所以可以正常运行
解决方案

你不需要用unstack变形数据即可实现按小时分布的箱线图绘制,推荐两种可行写法:

方案1:直接使用pandas分组箱线图(最简便)

直接通过boxplot的by参数指定分组维度即可,无需修改索引:

# 提取小时字段
df['hour'] = df['DateTime'].dt.hour
# 按小时分组绘制Val1的箱线图
df.boxplot(column='Val1', by='hour', figsize=(15, 5))

方案2:修复原有逻辑的索引问题

如果你要保留原有写法,只需要提前重置原始索引保证全局唯一即可:

# 先重置索引消除原始索引重复问题
df = df.reset_index(drop=True)
# 原有逻辑即可正常运行
df.set_index(df.DateTime.dt.hour, append=True)["Val1"].unstack().plot.box(figsize=(15,5))

两种方案都会保留每个小时的所有数值,完整展示分布和异常值,不需要删除任何重复小时的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:48:05