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

Pandas read_csv读取csv文件时列名无法识别(含不可打印字符)问题

问题定位与解决

首先明确两个核心问题:

  1. loc访问语法错误
    pd.DataFrame.loc 传入单个参数时默认是匹配行索引,你要按列名访问数据,需要明确指定行、列两个维度,或者直接用列索引取值,两种正确写法如下:
# 直接取列
data_olymp[" winter_games_bronze_won"] == 9
# loc指定全量行、目标列
data_olymp.loc[:, " winter_games_bronze_won"] == 9
  1. CSV表头携带多余空白字符(并非不可打印字符)
    你提供的CSV表头使用分号作为分隔符,每个分号后都跟随了1个或多个空格,这些空格会直接被识别为列名的一部分:
  • 普通列名前带1个空格:例如; summer_games_played 实际列名为 summer_games_played
  • 部分列名前带2个空格:例如; winter_games_silver_won 实际列名为 winter_games_silver_won
    你传入的' winter_games_bronze_won' 本身带前导空格和列名是匹配的,报错的核心原因是loc的使用方法错误。

永久修复列名空格问题

如果不想每次调用列名都带前导空格,可以在读取数据后统一处理列名:

import pandas as pd

data_olymp = pd.read_csv("Olympics_data.csv", sep=";")
# 清除所有列名前后的空白字符
data_olymp.columns = data_olymp.columns.str.strip()

处理完成后即可直接使用无空格的列名访问:

print(data_olymp["winter_games_bronze_won"] == 9)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:57:02