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

Python绘制折线图:零值缺失问题解决方案求助

解决方法

你的问题出在提前过滤了correct=False的记录,导致没有错题的考试直接被排除在统计结果外,折线图自然显示不了这些考试的0值。修改思路是先保留所有题型A的记录,统计每个考试的错题数,再补全所有考试编号并填充0值。

修改后的完整代码

import pandas as pd
import matplotlib.pyplot as plt

# 1. 筛选所有题型A的记录,无需提前过滤对错
quest_a = df2[df2["type_question"] == "A"]

# 2. 按考试编号分组,统计每组中错题(correct=False)的数量
# sum(~x)等价于统计correct为False的条目数:False取反后为True(对应int值1),sum后就是错题总数
error_counts = quest_a.groupby("n_exam")["correct"].apply(lambda x: sum(~x))

# 3. 生成完整的考试编号范围(1到12),补全缺失编号并填充0
full_exam_numbers = pd.Index(range(1, 13), name="n_exam")
error_counts_full = error_counts.reindex(full_exam_numbers, fill_value=0)

# 4. 绘制折线图
plt.plot(error_counts_full.index, error_counts_full.values)
plt.xlabel("考试编号")
plt.ylabel("题型A错题数")
plt.title("各考试题型A错题数趋势")
plt.xticks(range(1, 13))  # 强制x轴显示全部12个考试编号
plt.show()

关键步骤说明

  • 步骤2:通过groupby后直接统计每组错题数,避免提前过滤丢失无错题的考试记录。
  • 步骤3:用reindex匹配完整的考试编号列表,fill_value=0把无错题的考试数值设为0,确保12场考试都出现在统计结果中。
  • 绘图时设置xticks保证x轴显示所有编号,折线图就能完整展示所有考试的错题数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:25:16