Как преобразовать генератор в фрейм данных - PullRequest
2 голосов
/ 04 июня 2019

Я импортирую некоторые данные из SQL Server и преобразую их в кадры данных с пандами следующим образом:

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 перестала возвращать мне объект dataframe и начала возвращать объект генератора.

Проблема в том, что мне нужно создать новые файлы, объединяющие объекты фрейма данных и генераторы.Я мог бы преобразовать генератор в фрейм данных, упаковав куски в список, а затем объединить их в фрейм данных, например

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

, который отлично работает, но потребляет слишком много памяти.Есть ли более эффективный способ сделать это?

...