我在打开大型csv文件(> 5GB)并对其执行一些简单操作时遇到问题。我编写了以下代码:
import pandas as pd
import numpy as np
import os
import glob
os.chdir('C:\\Users\\data')
df = pd.read_csv('myfile.csv', low_memory=False, header=None, names= ['column1','column2', 'column3'])
df
即使将low_meemory设置为false也不起作用。我使用了在此站点中找到的以下代码,但是它也不起作用。
import pandas as pd
import numpy as np
import os
import glob
os.chdir('C:\\Users\\data')
mylist = []
for chunk in pd.read_csv('SME_all.csv', sep=';', chunksize=20000):
mylist.append(chunk)
big_data = pd.concat(mylist, axis= 0)
del mylist
df = pd.read_csv('myfile.csv', low_memory=False, header=None,
error_bad_lines = False, names=['column1','column2', 'column3'])
df
有什么建议吗?我应该考虑使用其他应用程序,例如Apache Spark吗?
答案 0 :(得分:0)
有很多方法。
也许最简单的方法是将CSV拆分为多个文件。仅当您不需要以任何方式汇总数据(例如groupby)时,此方法才有效。
您可以尝试在导入时指定dtypes,否则Pandas可能会将列解释为将占用更多内存的对象。
您可以使用python内置的CSV阅读器在CSV上进行迭代,如果这是您要尝试的工作类型,则可以对每一行执行操作。
您可以查看Dask,或在Google的dataproc或Azure的数据块上使用PySpark。