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

如何在Matplotlib中绘制含无名列数据集的柱状图

问题解决说明

首先可以明确:你必须先为无名列设置有效列名,pandas 绘图接口的 x、y 参数需要匹配 DataFrame 实际存在的列名,无对应列名的情况下无法识别目标数据,肯定会报错。

具体操作分两类场景:

1. 读取数据时直接指定列名

如果是刚要读取源数据,直接在读取接口里配置列名即可覆盖原来的无效表头,以读csv为例:

import pandas as pd
# header=0 表示用自定义的names替换原有文件第一行的表头
by_year = pd.read_csv("你的数据文件路径.csv", names=["SALE_DATE", "TOTAL"], header=0)

2. 数据已加载完成后修改列名

如果已经把数据读到DataFrame里了,两种修改方式可选:

  • 全量改列名(你只有两列,这种写法最简单):
by_year.columns = ["SALE_DATE", "TOTAL"]
  • 仅改第二列的名称(不会影响其他列原有命名,兼容性更强):
# by_year.columns[1] 对应第二列的原有列名,替换为TOTAL
by_year.rename(columns={by_year.columns[1]: "TOTAL"}, inplace=True)

临时绘图的简化方案

如果只是临时测试不想修改原有表结构,也可以直接按位置取列绘图,不用改列名:

# 取第一列作为x轴,第二列作为y轴
by_year.plot.bar(x=by_year.iloc[:,0], y=by_year.iloc[:,1])

这种写法可读性差,长期使用还是建议改规范列名。

完成列名修改后,你原本写的by_year.plot.bar(x='SALE_DATE', y='TOTAL')就能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:27:03