Я пытаюсь объединить два фрейма данных (df1
и df2
) на основе сопоставления значений из одного столбца (называемого «Имена»), который находится в каждом фрейме данных.Я попробовал это с помощью функции R inner_join
, а также функции Python merge
в Python, и смог успешно работать с обоими на меньших подмножествах моих данных.Я думаю, что моя проблема с размером моих фреймов данных.
Мои фреймы данных выглядят следующим образом:
df1
имеет столбец «Имена» с 5 дополнительными столбцами и ~ 900 строк. df2
содержит столбец «Имена» с ~ 2 миллионами дополнительных столбцов и ~ 900 строк.
Я пытался (в R):
df3 <- inner_join(x = df1, y = df2, by = 'Name')
Я также пытался (в Python, где df1
и df2
- фреймы данных Pandas):
df3 = df1.merge(right = df2, how = 'inner', left_on = 1, right_on = 0)
(где столбец «Имя» имеет индекс 1 для df1 и индекс 0 для df2)
Когда я применяю вышеизложенное к моим полным фреймам данных, он работает очень долгои в итоге вылетает.Кроме того, я подозреваю, что проблема может быть в 2 миллионах столбцов моего df2
, поэтому я попытался установить его (по строкам) в меньшие кадры данных.Мой план состоял в том, чтобы объединить небольшие подмножества df2
с df1
, а затем в конце связать строки вместе новые кадры данных.Однако объединение даже меньших секционированных df2
с было неудачным.
Буду признателен за любые предложения, которые кто-нибудь сможет дать.