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

为什么我的pandas DataFrame无法识别CSV文件中的列?

问题原因
  • CSV文件的表头字段和逗号之间存在多余空格,pandas读取后实际列名为' bedrooms'(开头包含空格)而非'bedrooms',因此无法通过属性调用的方式正常访问列
  • CSV每行末尾多余的逗号会导致读取时生成额外的空值列,现有清理逻辑仅能移除Unnamed类空列,没有处理列名带空格的问题
修复方案

方案1:读取CSV时自动处理格式问题

在pd.read_csv方法中添加参数,读取阶段直接完成格式清理:

import pandas as pd

df = pd.read_csv("testfile.csv", 
                 skipinitialspace=True, # 自动忽略逗号后的多余空格,清理列名和字段值的前缀空格
                 usecols=['area', 'bedrooms', 'age', 'price']) # 仅读取指定列,自动跳过末尾逗号生成的空列

print(df.bedrooms.median())

方案2:读取后批量格式化列名

如果不便修改读取参数,可在读取后统一清理列名格式:

import pandas as pd

df = pd.read_csv("testfile.csv")
# 移除空值列 + 清理所有列名前后的空白字符
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
df.columns = df.columns.str.strip()

print(df.bedrooms.median())
补充说明

pandas的属性调用写法df.列名仅对符合Python变量命名规则、且和DataFrame内置方法/属性不重名的列生效。更稳妥的列访问方式是中括号写法df['bedrooms'],可以兼容含空格、特殊字符的列名,避免大部分访问异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:06:05