Фрейм данных «один ко многим» объединяет большие наборы данных - MemoryError - PullRequest
1 голос
/ 05 октября 2019

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

Например:

def one_to_many_merge(left, right):
    return (left.assign(key=1).merge(right.assign(key=1), on='key').drop('key', 1))

Это достигается назначениемзначение ключа для первого кадра данных и объединяет этот ключ с тем же назначенным ключом для второго кадра данных, а затем отбрасывает этот ключ и повторяет.

Небольшой пример выходных данных для (3,1) и (2,1) фрейм данных:

df1 = pd.DataFrame({'X' : [1, 2, 3]})
df2 = pd.DataFrame({'Y' : [10, 20]})

df3 = one_to_many_merge(df1, df2)

df3

X   Y
1   10
1   20
2   10
2   20
3   10
3   20

Проблема в том, что я сталкиваюсь с MemoryError для больших наборов - он ломается при объединении фрейма (43262,1) с фреймом (43039,1).

Есть ли лучший способ сделать это параллельным процессом или чем-то более простым для обработки памятью, когда эти кадры данных становятся огромными? Я буду использовать еще большие наборы в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...