【问题标题】:Errors reading CSV with Pandas使用 Pandas 读取 CSV 时出错
【发布时间】:2021-11-08 05:22:11
【问题描述】:

我有一个需要分析的 1 亿行数据集。我使用这个函数来读取文件:

csv2020=pd.read_csv('filename.txt',
                    sep="\t",
                    error_bad_lines=False,
                    usecols=['field1', 'field2', 'field3', 'field4'],
                    dtype={'field1': int,'field2': float, 'field3': float, 'field4': float})

但是我收到了一个错误,其中一条线无法转换为浮点数:

ValueError:无法将字符串转换为浮点数:'ORCH'

我想省略任何发生此错误的行,但除了 error-bad-lines 参数之外我不知道如何。帮忙?

谢谢!

【问题讨论】:

  • as filename.txt 包含 1 亿行 - 你认为你有足够的内存来加载它吗?

标签: python pandas csv large-data


【解决方案1】:

error_bad_lines 选项不用于此目的,它仅适用于错误数量的字段。

在没有dtype 选项的情况下读取您的文件,然后使用pandas.to_numericerrors='coerce' 选项进行转换:

df = pd.read_csv(…)
df['field1'] = pd.to_numeric(df['field1'], errors='coerce')
df['field2'] = …

【讨论】:

  • 完美运行。谢谢!
【解决方案2】:

您尝试导入为浮点数的某些列具有字符串,因此无法转换。

首先阅读没有“dtype....”的 CSV 并查看您的数据框

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2020-01-29
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2021-12-06
    • 2023-04-05
    相关资源
    最近更新 更多