Объединение двух DataFrames кусками - PullRequest
2 голосов
/ 28 мая 2020

Цель

Каким будет лучший подход для объединения df1 и df2 вместе, где df2 объединяется по частям. В настоящее время возникает ошибка памяти при слиянии df2

Без фрагментов я делаю следующее:

df = df1.merge(df2, how='left', left_on=['x','y'], right_on['x','y']

1 Ответ

1 голос
/ 28 мая 2020

Вы можете разделить большой фрейм данных на куски, скажем, по 200 тыс. Строк.

n = 200000  #chunk row size
list_df = [df2[i:i+n] for i in range(0, df2.shape[0],n)]

Затем объедините все фрагментированные df с df1:

res = pd.DataFrame() 

for chunk in list_df:
    res = pd.concat([res, df1.merge(chunk, how='left', left_on=['x','y'], right_on['x','y']) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...