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

如何排除文本列解决plt.boxplot()运行失败问题

用箱线图和直方图检测异常值

执行plt.boxplot(df[col])时运行失败,核心原因是数据框的第8列为文本类型,箱线图仅支持数值型数据,因此需要先排除非数值型列再执行可视化。

以下是修复后的代码:

import matplotlib.pyplot as plt

plt.figure(figsize=(15, 30))
i = 0
# 自动筛选数据框中的数值型列,排除文本等非数值类型列
numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns
for col in numeric_cols:
    i += 1
    plt.subplot(9, 4, i)
    plt.boxplot(df[col])
    plt.title(f'{col}', fontsize=9)
    plt.hist(df[col])
plt.suptitle('异常值检测', fontsize=16, verticalalignment='top', horizontalalignment='center', fontweight='bold')
plt.savefig('charts/Detect_Outlier_Plots.png', dpi=None, facecolor='w', edgecolor='g', orientation='portrait',
            format=None, transparent=False, bbox_inches=None, pad_inches=0.0, metadata=None)
plt.show()

关键修改说明:

  • 通过df.select_dtypes(include=['int64', 'float64'])自动筛选数值型列,无需手动定位第8列,适配列结构变化的场景
  • 将全局标题改为中文异常值检测,更贴合中文使用习惯
  • 保留原代码的子图布局、图表保存等核心逻辑,仅针对数据类型问题做针对性修复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:15:00