Python 读取大数据集
我正在尝试读取20gb的数据集。我一直在寻找解决方案,我尝试过:Python 读取大数据集,python,database,pandas,numpy,dataframe,Python,Database,Pandas,Numpy,Dataframe,我正在尝试读取20gb的数据集。我一直在寻找解决方案,我尝试过: data = pd.read_csv('dataset.csv', chunksize=1000,usecols=fields) df = pd.concat(data, ignore_index=True) 但在传递到连接时仍会出现内存错误。(我改变了很多次chunksize,还是一样) 我有16gb的RAM在3000mhz下工作 有什么建议吗 我正在尝试将数据导入到数据框中进行数据分析,并将其导出回来。(数据需要
data = pd.read_csv('dataset.csv', chunksize=1000,usecols=fields)
df = pd.concat(data, ignore_index=True)
但在传递到连接时仍会出现内存错误。(我改变了很多次chunksize,还是一样)
我有16gb的RAM在3000mhz下工作
有什么建议吗
我正在尝试将数据导入到数据框中进行数据分析,并将其导出回来。(数据需要从NAN和嘈杂的数据中清除)。不知道您想要/需要用数据完成什么确实让这变得很棘手,但大多数数据操作都可以用SQL完成,因此我建议使用SQL作为数据处理引擎 将数据存储在磁盘上,可以避免将20Gb的数据读入16Gb或RAM的可能性 另外,请阅读文档以了解更多信息 您将需要以下内容(未测试): 导入sqlite3 conn=sqlite3.connect('out\u Data.db')) data=pd.read\u csv('dataset.csv',chunksize=1000,usecols=fields) 对于数据中的数据块: 数据块到sql(连接,如果存在='append') c=连接光标() c、 执行(“从数据分组中选择*变量1”) 请记住,除非您执行的操作大大减少了内存占用,否则无法将数据放入数据框中 要转换回.csv,请执行以下操作 为了获得更好的性能:
- 将区块大小增加到系统可以处理的最大值
- sqlite3 CLI实际上有自动导入.csv文件的方法,这比通过python要快得多
import sqlite3
conn = sqlite3.connect('out_Data.db')
data = pd.read_csv('dataset.csv', chunksize=1000, usecols=fields)
for data_chunk in data:
data_chunk.to_sql(conn, if_exists='append')
c = conn.cursor()
c.execute("SELECT * FROM data GROUPBY variable1")
<<<perform data manipulation using SQL>>>