You need to enable JavaScript to run this app. Pandas绘制Label=1的Type维度时间序列多线图(解决pivot报错)
优惠活动
大模型
产品
解决方案
定价
更多

Pandas绘制Label=1的Type维度时间序列多线图(解决pivot报错)

报错原因

ValueError: Index contains duplicate entries, cannot reshape 触发的核心原因有两点:

  • 原生df.pivot方法要求「索引字段、分列字段的组合必须唯一」,样例数据中同一日期下对应同一个Type存在多条记录,不满足透视前提
  • 你代码中写的values='y'与当前数据集结构不匹配,实际存储目标值的字段为Label

实现步骤

  1. 统一日期格式
    将字符串格式的Date列转为标准日期类型,避免时间轴排序错乱:
    df['Date'] = pd.to_datetime(df['Date'])
  2. 筛选目标样本
    过滤出Label取值为1的观测记录:
    df_filtered = df[df['Label'] == 1]
  3. 替换透视方法
    使用自带聚合逻辑的pivot_table替代原生pivot,根据分析目标选择对应聚合方式处理重复的日期+Type组合:
    • 若需统计每个日期下对应Type的Label=1样本数量,选择计数聚合:
      pivot_result = df_filtered.pivot_table(
          index='Date',
          columns='Type',
          values='Label',
          aggfunc='count' # 筛选后所有样本Label=1,count与sum的计算结果完全等价
      )
      
    • 若仅需标记每个日期下对应Type是否存在Label=1的样本(输出0/1二值结果),选择取最大值聚合:
      pivot_result = df_filtered.pivot_table(
          index='Date',
          columns='Type',
          values='Label',
          aggfunc='max'
      )
      
  4. 绘制多线时间序列图
    透视完成后直接调用pandas内置绘图接口,每个Type类别会自动生成独立折线:
    pivot_result.plot(figsize=(10, 6), ylabel='Label=1的样本统计值')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 06:36:04