繁体   English   中英

在python中读写大型CSV文件

[英]Read and write large CSV file in python

我使用以下代码读取CSV大型文件(6-10 GB),插入标题文本,然后再次将其导出到CSV。

df = read_csv('read file')
df.columns =['list of headers']
df.to_csv('outfile',index=False,quoting=csv.QUOTE_NONNUMERIC)

但是这种方法非常慢,而且我的内存不足。 有什么建议么?

抱歉,我没有足够的声誉来发表评论,所以我将留下答案。 首先,您在读取文件时会尝试添加low_memory参数吗? https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

df = read_csv('read file', low_memory=False)

第二,如何尝试使用info()检查内存使用情况

df = read_csv('read file')
df.columns =['list of headers']
print(df.info())

第三,根据莫希特(Mohit)的建议,

# set chunk size to split the big file per chunk size when read it in memory
chunksize = 10 ** 6
for chunk in pd.read_csv(filename, chunksize=chunksize):
    #do process with chunk as your file content

而不是在整个6GB文件读取,你能不能只是添加标题到一个新的文件,然后cat在休息吗? 像这样:

import fileinput

columns = ['list of headers']
columns.to_csv('outfile.csv',index=False,quoting=csv.QUOTE_NONNUMERIC)
with FileInput(files=('infile.csv')) as f:
    for line in f:
        outfile.write(line)
    outfile.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM