pandas绘制DataFrame时报no numeric data to plot错误如何解决
错误原因
你调用df.Stadt.plot()时操作的是Stadt列对应的Series对象,该列本身是object字符串类型,没有数值数据。你传入的columns="1950"参数仅适用于DataFrame的plot方法,对Series的plot方法不会生效,因此触发报错。
解决方法
你需要将数值列1950作为绘图的数据源,同时指定Stadt为X轴标签即可,有两种常用写法:
- 直接基于完整DataFrame绘图,显式指定X、Y轴字段
ax = df.plot(kind='bar', x='Stadt', y='1950', color='#c93867', figsize=(50,10))
- 先将
Stadt设为索引,再选择数值列绘图
ax = df.set_index('Stadt')['1950'].plot(kind='bar', color='#c93867', figsize=(50,10))
如果你的数据存在同一个Stadt对应多条记录的情况,建议先按Stadt分组聚合后再绘图,避免X轴标签重复:
# 示例为求和,可按需替换为mean、max等聚合逻辑 df_grouped = df.groupby('Stadt', as_index=False)['1950'].sum() ax = df_grouped.plot(kind='bar', x='Stadt', y='1950', color='#c93867', figsize=(50,10))
内容的提问来源于stack exchange,提问作者user16993210
相关产品推荐
相关产品推荐

