Я пытаюсь объединить два огромных фрейма данных ( 4 + миллионы каждый ), которые имеют следующую структуру:
Фрейм данных A:
date Fruit a b c d
01 "apple" 0 3 5 1
03 "apple" 8 2 7 2
02 "banana" 1 4 3 5
04 "banana" 3 5 2 6
03 "pineapple" 2 6 4 6
05 "pineapple" 3 5 7 9
Фрейм данных B:
date Fruits x y z
01 "apple, pear, strawberry" a n q
02 "banana, apple, coconut" b m p
03 "pineapple, pear, banana" c s o
04 "banana, apple, coconut" d f v
05 "pineapple, pear, banana" r ñ t
Я пытаюсь достичь третьего кадра данных со следующей структурой:
Кадр данных C:
date Fruit a b c d x y z
01 "apple" 0 3 5 1 a n q
03 "apple" 0 3 5 1 0 0 0
02 "banana" 1 4 3 5 b m p
04 "banana" 1 4 3 5 d f v
03 "pineapple" 2 6 4 6 c s o
05 "pineapple" 2 6 4 6 r ñ t
...
Я уже пробовал что-то вроде:
test = market_test.assetCode.apply(lambda x : news_test.assetCodes.str.find(x)>=0)
Но мое ядро порвалось, я также пытался использовать цикл for, чтобы развернуть столбец фруктов в B фрейме данных в столбец 'fruit-b', сохраняя данные от других B столбцы, а затем слияние между столбцом даты и столбцами ' fruit-B ', но время выполнения слишком велико.
Есть ли способполучение фрейма данных C с использованием фрейма данных A и B , который не занимает много времени и памяти?
Fruit и Фрукты тип столбцов - строка.