[英]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.