【问题标题】:MemoryError in pandas read_csv熊猫 read_csv 中的 MemoryError
【发布时间】:2019-12-31 14:16:07
【问题描述】:

我有文件 1.csv,该文件有 5 GB 内存。我有 pandas scipt 用于删除重复项。但是每次我运行脚本时都会出现内存错误。

我尝试将大文件分块,但它只能部分读取文件。我需要从整个文件中删除重复项。

import pandas as pd

df = pd.read_csv('1.csv',na_filter=False)
df = df.drop_duplicates(['job_title','industry','state','company_name'])

df.to_csv('2.csv',index=False,encoding='utf-8')

我希望得到 2.csv 文件,但我得到了这个

文件“pandas_libs\parsers.pyx”,第 876 行,在 pandas._libs.parsers.TextReader.read
文件“pandas_libs\parsers.pyx”,第 919 行,在 pandas._libs.parsers.TextReader._read_low_memory 中。 文件“pandas_libs\parsers.pyx”,第 2141 行,在 pandas._libs.parsers._concatenate_chunks 内存错误

【问题讨论】:

  • df = df.drop_duplicates(['job_title','industry','state','company_name'])df.drop_duplicates(['job_title','industry','state','company_name'], inplace=True)
  • @jezrael 我对大文件有问题,而不是删除重复项,因为文件是 5gb
  • 您可以在open 中使用csv.reader 并一次读取一行。将其设为临时 df 并使用 pd.concat().drop_duplicates(by=['job_title','industry','state','company_name']) 将其与主 df 连接
  • @kavin 你能写下这段代码吗?

标签: python python-3.x pandas csv export-to-csv


【解决方案1】:

如果您使用 bash 并需要快速修复,您可以使用 [line number] 是您希望每个文件包含的行数的命令

split -l [line number] file.csv 

然后加入文件

cat file1.csv <(tail +2 file2.csv) > out.csv

【讨论】:

    猜你喜欢
    • 2018-01-27
    • 2016-03-30
    • 2019-07-12
    • 2017-08-02
    • 1970-01-01
    • 2012-11-21
    • 2018-07-19
    • 2020-08-24
    • 2018-05-03
    相关资源
    最近更新 更多