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

如何正确读取存在列数不一致的pandas DataFrame数据文件?

正确读取该分号分隔数据文件的解决方案

你遇到的加载异常,大概率是文件路径不匹配(代码里用的本地路径/Data/123451_date.csv和你提供的云盘链接完全不对应),再加上参数配置没适配缺失值场景导致的。下面是一步步的解决思路:

第一步:先搞定文件的可访问路径

你给出的是谷歌云盘共享链接,没法直接用本地路径读取。你可以先把文件下载到本地,记下保存的实际路径(比如放在当前工作目录的话,路径就是./123451_date.csv);如果是在Colab这类云环境里,也可以通过挂载云盘的方式获取可访问的文件路径。

第二步:优化pandas读取参数

针对分号分隔、存在缺失值的文件,推荐用pd.read_csv(比read_table更贴合CSV类文件的读取场景),同时调整参数适配你的数据情况:

import pandas as pd

# 替换成你下载后的实际文件路径
df = pd.read_csv(
    './123451_date.csv',
    sep=';',
    index_col=0,
    engine='python',
    error_bad_lines=False,
    na_values=['', 'NaN', 'NA'],  # 明确指定哪些值会被识别为缺失值
    skip_blank_lines=True  # 跳过空行,避免解析异常
)

参数补充说明:

  • na_values:显式定义缺失值的标识,覆盖pandas默认规则,能更精准匹配你文件里的缺失情况
  • skip_blank_lines:如果文件里存在空行,直接跳过,避免触发解析错误
  • 保留你原有的sep=';'、index_col=0、engine='python'(Python引擎比C引擎更灵活,处理特殊分隔或错误行时更稳定)、error_bad_lines=False(跳过解析失败的行)

第三步:验证加载结果

读取完成后,可以用以下代码确认数据是否正常加载:

# 查看前5行数据
print(df.head())
# 统计各列的缺失值数量
print(df.isnull().sum())

如果还是有问题,可以尝试额外调整:

  • 加上encoding='utf-8'或encoding='latin-1'参数,解决文件编码不兼容的问题
  • 用names=['列名1', '列名2', ...]手动指定列名,适配表头格式异常的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:57:11