【问题标题】:KeyError: 0L building boxplotKeyError: 0L 构建箱线图
【发布时间】:2016-08-30 04:49:25
【问题描述】:

我使用的是 0.18.0 版的 pandas 和 1.5.1 版的 matplotlib。

在尝试创建箱线图时,我收到 KeyError: 0L

df = df[(df['colA'] > 1000) & (df['colA'] < 5000)]
plt.boxplot(df['ColA'])

当我不对df 执行过滤器时,代码会运行并创建一个箱线图,没有任何问题。

当我使用过滤后的df 绘制直方图时,这可以正常工作。

plt.hist(df['ColA'], range(1000,5000,500))

在尝试创建箱线图时导致错误的原因是什么?任何帮助表示赞赏。

【问题讨论】:

  • 我认为这是一个错误。我遇到了类似的问题,但我不记得是否与箱线图有关。 matplotlib 正在寻找从 0 开始的索引。解决方法是:df = df[(df['colA'] &gt; 1000) &amp; (df['colA'] &lt; 5000)].reset_index(drop = True)plt.boxplot(df['ColA'].values)
  • 这里有一个类似的问题:stackoverflow.com/questions/12406162/…
  • 太棒了,感谢您的解决方法和链接类似的问题。我会尽快测试解决方法,并让您知道我的进展情况。
  • 两者都有效 - 非常感谢!

标签: python python-2.7 pandas matplotlib


【解决方案1】:

如果您在谷歌搜索时错过了它(就像我几乎一样),答案在问题的 cmets 中:

  • 使用.values:plt.boxplot(df['ColA'].values)
  • this question 中查找更多解释和选项。
    • tldr; 绘图尝试从索引 0 开始,这不适用于命名列或切片等...使用 .values 或重置索引将解决此问题。

感谢@ayhan 提供此信息。

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多