Оптимизация слияния панд и других методов агрегации? - PullRequest
0 голосов
/ 19 января 2019

У меня есть два кадра данных панд,

Имя клиента Датафрейм: Имя

  ID       Name
 9967   Tasia Aldrich
 5154   Tinisha Balcom    
 9780   Lonna Braga
 5101   Violette Arneson
 7074   Oralee Schertz
 4324   Tempie Bristol
 7270   Margarita Evens
 2087   Jon Woodham
 1301   Linwood Wollman
 5897   Salvatore Oatis

и т. Д.

Фрейм данных о покупке продукта клиента: покупка

 ID     Product
1094    Audio Equipment
5337    Cameras and Camera Equipment
3035    Car Electronics and GPS
7865    Computer Accessories
2126    Desktop Computers and Monitors
8823    Laptops and Notebooks
4987    Lighting Equipment
7920    Smartphones and Mobile Devices
5801    Tablets and E-Readers
8242    Televisions and Television Services

и т. Д.

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

mergeDF=name.merge(purchase,'left','ID')

и для полного слияния потребовалось буквально 140 минут. Есть ли другой метод, с помощью которого я могу оптимизировать это?

Вторая часть:

Я также пытаюсь создать столбец во вновь объединенном фрейме данных под названием "ключ", который определяется как:

mergedDF['key']=mergedDF.apply(lambda x: x.ID+'&'+x.Product,axis=1)

, что снова займет уйму времени. Любая рекомендация для этого? Я новичок в Python, поэтому любые предложения будут полезны.

...