При объединении двух DataFrame появляются дубликаты
Есть два DataFrame:
df1
carNumber last_name first_name tel_drv
0 м599ео89 Максимов Сергей 79888888888
1 к595ум89 Шердаков Илья 79999999999
2 м055ун89 Иванов Александр 77979879879
3 м599ео89 Игамбердиев Исак 77789746566
4 н100ан89 Гученко Антон 79132131321
5 к584ум89 Пучеглазов Денис 79879877979
df2
carNumber carBrand carModel carColor carType carYear
0 м599ео89 Chery Tiggo Красный Эконом 2014
1 к595ум89 Chevrolet Cruze Серый Эконом 2013
2 м055ун89 Ford GRAND C-MAX Чёрный Эконом 2006
3 м599ео89 Hyundai Sonata Бежевый Эконом 2007
4 м904во89 Hyundai Solaris Голубой Эконом 2013
5 е585св89 Hyundai Solaris Серебристый Комфорт 2014
Объединяю таблицы по carNumber:
df_drv_car = df1.merge(df2, how='left')
Но в DataFrame df_drv_car появляются дубликаты. Что делаю не так?
Мне надо:
df_drv_car
carNumber last_name first_name tel_drv carBrand carModel carColor carType carYear
0 м599ео89 Максимов Сергей 79888888888 Chery Tiggo Красный Эконом 2014
1 к595ум89 Шердаков Илья 79999999999 Chevrolet Cruze Серый Эконом 2013
и т.д.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Так работает декартово произведение множеств. Если у вас есть дубликаты в обоих множествах, то в результируещем множестве будут все комбинации:
In [22]: df1
Out[22]:
id val
0 1 1
1 2 2 # id: 2
2 2 22 # id: 2
3 3 3
In [23]: df2
Out[23]:
id name
0 2 two # id: 2
1 2 two_again # id: 2
2 4 four
In [24]: df1.merge(df2)
Out[24]:
id val name
0 2 2 two
1 2 2 two_again
2 2 22 two
3 2 22 two_again
тоже самое происходит с вашими таблицами:
In [28]: df1.merge(df2).sort_values("carNumber")
Out[28]:
carNumber last_name first_name tel_drv carBrand carModel carColor carType carYear
4 к595ум89 Шердаков Илья 79999999999 Chevrolet Cruze Серый Эконом 2013
5 м055ун89 Иванов Александр 77979879879 Ford GRAND_C-MAX Чёрный Эконом 2006
0 м599ео89 Максимов Сергей 79888888888 Chery Tiggo Красный Эконом 2014
1 м599ео89 Максимов Сергей 79888888888 Hyundai Sonata Бежевый Эконом 2007
2 м599ео89 Игамбердиев Исак 77789746566 Chery Tiggo Красный Эконом 2014
3 м599ео89 Игамбердиев Исак 77789746566 Hyundai Sonata Бежевый Эконом 2007