如何导入大型csv文件并执行操作

时间:2019-04-15 14:09:46

标签: python bigdata

我在打开大型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吗?

1 个答案:

答案 0 :(得分:0)

有很多方法。

也许最简单的方法是将CSV拆分为多个文件。仅当您不需要以任何方式汇总数据(例如groupby)时,此方法才有效。

您可以尝试在导入时指定dtypes,否则Pandas可能会将列解释为将占用更多内存的对象。

您可以使用python内置的CSV阅读器在CSV上进行迭代,如果这是您要尝试的工作类型,则可以对每一行执行操作。

您可以查看Dask,或在Google的dataproc或Azure的数据块上使用PySpark。