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

如何绘制DataFrame中type为A的count随date变化的散点图?

解决type为'A'的count随时间变化散点图绘制问题

你的代码存在几个关键问题:

  • 列名大小写不匹配:原DataFrame的列是type,你代码中写的Type,这是触发KeyError的主要原因之一
  • groupby用法错误:groupby('Type' == 'A')完全不符合语法,筛选type为A的数据不需要分组,直接用布尔索引即可
  • x轴列名错误:原数据中时间列是date,你代码里写了不存在的Year_Month,这也是KeyError的来源

正确实现步骤:

  1. 先筛选出type为'A'的数据子集
  2. (可选但推荐)确保date按月份顺序排列,避免字符串排序导致的顺序混乱
  3. 基于子集绘制散点图,x轴为date,y轴为count

完整代码示例:

import pandas as pd
import matplotlib.pyplot as plt

# 初始化你的DataFrame(如果已有可跳过)
df = pd.DataFrame({
    'type': ['A', 'A', 'A', 'B', 'B', 'C', 'C'],
    'date': ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul'],
    'count': [456, 121, 333, 123, 123, 189, 789],
    'CLASS': [0, 1, 1, 1, 1, 1, 1]
})

# 筛选type为'A'的数据集
df_a = df[df['type'] == 'A']

# 设置月份的有序类别,保证x轴按时间顺序排列
month_order = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul']
df_a['date'] = pd.Categorical(df_a['date'], categories=month_order, ordered=True)

# 用matplotlib直接绘制散点图
plt.scatter(x=df_a['date'], y=df_a['count'])
plt.xlabel('月份')
plt.ylabel('Count数值')
plt.title('Type A的Count随月份变化散点图')
plt.show()

# 或者用pandas的plot方法快速绘制
# df_a.plot.scatter(x='date', y='count', title='Type A的Count随月份变化散点图')
# plt.xlabel('月份')
# plt.ylabel('Count数值')
# plt.show()

代码说明:

  • 布尔索引df[df['type'] == 'A']精准筛选出目标数据,是处理这类需求的标准方式
  • 将date转为有序类别,确保x轴按实际月份顺序展示,避免字符串默认排序可能带来的混乱(比如'dec'会排在'jan'前面)
  • 两种绘图方式任选其一,pandas的plot方法更简洁,matplotlib则提供更多自定义空间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:05:23