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

请求:展示列前12个值的图表并修复代码仅显示单一年份问题

问题修复方案

问题根源

原代码的问题在于:遍历所有分类时,对每个分类只取了前12条数据,这12条数据大概率集中在同一年,导致分组后仅能得到单一年份的统计结果,无法展示该分类的所有年份数据。而你的需求是展示Category列中前12个不同值对应的各年份数据图表。

修复后的代码

import pandas as pd
import matplotlib.pyplot as plt

# 从Deadline列提取年份
ks['Year'] = pd.to_datetime(ks['Deadline']).dt.year

# 获取Category列的前12个不同分类值
top_12_categories = ks['Category'].unique()[:12]

# 获取数据集中所有存在的年份,用于补全缺失年份的计数
all_years = ks['Year'].unique()
all_years.sort()

for category in top_12_categories:
    # 提取当前分类的全部数据
    product_df = ks[ks['Category'] == category]
    
    # 按年份分组统计数量,用reindex补全所有年份(缺失年份计数设为0)
    product_counts = product_df.groupby('Year').size().reindex(all_years, fill_value=0)

    # 绘制折线图
    plt.plot(product_counts.index, product_counts.values, marker='o', linestyle='-', label=category)

    plt.xlabel('年份')
    plt.ylabel('数量')
    plt.title(f'{category}分类各年份数量统计(前12个分类)')
    plt.xticks(all_years, rotation=45, ha='right')
    plt.legend()
    plt.tight_layout()  # 自动调整布局,避免标签被截断
    plt.show()

关键修改点

  • 调整为只遍历前12个独特分类,匹配你“展示某一列前12个值对应图表”的需求
  • 移除每个分类取前12条数据的操作,保留该分类全部数据,确保能统计到所有年份
  • 新增reindex操作补全所有存在的年份,缺失年份计数设为0,避免图表断档或仅显示部分年份
  • 添加plt.tight_layout()解决年份标签被截断的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:22:33