如何将生成器转换为数据框

时间:2019-06-04 15:06:29

标签: python pandas dataframe generator pyodbc

我正在从SQL Server导入一些数据,并将其转换为带有pandas的数据框,如下所示:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;UID=user;PWD=password')
DF = pd.read_sql_query("SELECT * FROM file", cnxn, chunksize = 20000)

一切正常,直到我不得不处理一个非常大的文件。为了保留内存,read_sql_query函数停止向我返回一个数据框对象,并开始返回一个生成器对象。

问题是我必须创建新文件来合并数据框对象和生成器。我可以将生成器转换为将数据块包装到列表中的数据帧,然后将它们串联到数据帧中,例如

list_of_chunks = []
for chunk in generator:
    list_of_chunks.append(chunk)
df = pd.concat(list_of_chunks)

可以正常工作,但是会占用太多内存。有更有效的方法吗?

0 个答案:

没有答案