Pandas绘制箱线图出现KeyError:指定列不在索引中的问题
解决pandas boxplot列名匹配的KeyError问题
排查列名隐藏字符
- 先打印列名的原始字符串(包含不可见字符),用
repr()函数暴露细节:
对比三个列名的输出,大概率能发现第三列存在多余空格、制表符这类肉眼看不到的字符——比如实际列名是for col in df.columns: print(repr(col))'Own contribution assessment 3 '(末尾多了空格),手动输入的名字自然匹配不上。
直接引用现有列名
- 别手动输入列名,直接从
df.columns里取对应元素传入boxplot,彻底避免字符匹配问题:
嫌麻烦的话直接传入全部列:df.boxplot(column=[df.columns[0], df.columns[1], df.columns[2]])df.boxplot(column=df.columns)
重命名列名消除隐患
- 如果确认有隐藏字符,直接重命名列名统一格式:
之后再调用df.columns = ['Own contribution assessment 1', 'Own contribution assessment 2', 'Own contribution assessment 3']df.boxplot(column=df.columns)验证是否正常生成包含三列的箱线图。
辅助验证:检查列名长度
- 打印每个列名的长度,看是否和预期一致:
要是第三列长度比前两列长,基本实锤有隐藏字符。for col in df.columns: print(col, len(col))
内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows
相关产品推荐
相关产品推荐

