在Google Colab绘制CSV直方图遇KeyError问题求助
解决KeyError: 'num_hrefs'问题(Google Colab中处理Online News Popularity数据集)
问题根源
你遇到的KeyError是因为该CSV数据集的列名存在前导空格。虽然你在数据集文件里看到的列名是num_hrefs,但pandas加载后,实际列名是' num_hrefs'(开头有空格),直接用无空格的列名索引自然找不到。
解决方案
1. 确认列名的真实状态
先运行以下代码查看所有列名的实际情况:
print(data.columns.tolist())
你会发现所有列名前都带有空格,比如' num_hrefs'、' shares'。
2. 清理列名
有两种方式处理:
- 方式一:加载数据时直接处理
在pd.read_csv中添加skipinitialspace=True参数,自动忽略列名前的空格:data = pd.read_csv('OnlineNewsPopularity.csv', skipinitialspace=True) - 方式二:加载后手动清理
对已加载的数据列名进行去空格处理:data.columns = data.columns.str.strip()
3. 重新运行直方图代码
处理完列名后,原代码即可正常运行。另外建议修正图表标签(匹配实际列含义):
plt.hist(data['num_hrefs'], bins=30) plt.xlabel('Number of Hyperlinks') plt.ylabel('Number of Articles') plt.title('Distribution of Hyperlinks in Online News') plt.show()
如果要分析分享量,改用shares列:
plt.hist(data['shares'], bins=30) plt.xlabel('Number of Shares') plt.ylabel('Number of Articles') plt.title('Popularity Distribution of Online News') plt.show()
内容的提问来源于stack exchange,提问作者skm
相关产品推荐
相关产品推荐

