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

pandas取DataFrame指定行绘制柱状图报无数值数据如何解决

问题原因

你提取出的行对应的Series数据类型为object,虽然打印结果显示为512这类数值形式,但实际存储为字符串类型,pandas绘图模块无法将其识别为可绘制的数值数据,因此抛出TypeError: no numeric data to plot错误。

修复方案

有两种常用修复方式,可根据使用场景选择:

  • 临时转换当前待绘制行的数据类型,无需修改原始DataFrame:
import pandas as pd
import matplotlib.pyplot as plt

row = df.iloc[4]
# 将Series转换为数值类型,errors='coerce'参数可将无法转换的异常值自动设为NaN,避免转换报错
row_numeric = pd.to_numeric(row, errors='coerce')
row_numeric.plot(kind='bar')
plt.tight_layout()
plt.show()
  • 全局转换整个DataFrame的列数据类型,后续所有行操作都无需重复转换:
import pandas as pd
import matplotlib.pyplot as plt

# 对DataFrame所有列执行数值转换
df = df.apply(pd.to_numeric, axis=0, errors='coerce')
# 后续直接正常取行绘图即可
row = df.iloc[4]
row.plot(kind='bar')
plt.tight_layout()
plt.show()

如果转换过程中出现非预期的NaN值,可检查原始DataFrame中是否混入了空字符串、特殊符号等非数值内容,排查后再执行转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:54:02