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

Pandas存在Event列却报KeyError?求报错原因及解决方向

问题原因与解决方法

为什么会触发KeyError?

你执行all_run_counts["Event"].value_counts()后,得到的不是包含Event列的DataFrame,而是一个带多层索引(MultiIndex)的Series:

  • 这个Series的索引是双层结构:第一层是Run,第二层是Event
  • Series的数值是对应Event在该Run下的出现次数
  • 此时Event是索引的一部分,不是普通列,所以用result['Event']会触发KeyError

解决方法(三种可选)

方法1:直接通过多层索引筛选(最简洁)

利用Pandas的xs方法直接提取第二层索引为'J'的条目:

j_counts = result.xs('J', level='Event')

方法2:转成DataFrame后筛选

先把Series转换为普通DataFrame,让Run和Event成为列,再做筛选:

# 重置索引,将多层索引转为列,同时给计数列命名为Count
result_df = result.reset_index(name='Count')
# 筛选Event为'J'的行
j_counts = result_df[result_df['Event'] == 'J']

方法3:一步到位统计特定Event(效率更高)

不用先统计所有Event,直接过滤出目标Event后再分组计数:

j_counts = all_data_df[all_data_df['Event'] == 'J'].groupby('Run').size()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:09:58