2015-12-02 5 views
0

У меня есть два dataframes в панде:Как объединить два кадра данных с повторяющимися значениями в пандах

dilevery_time dispatch_time source_lat source_long Address name 
0 21:39:37.265 21:47:37.265 -73.955741 40.3422  Dmart John 
0 21:39:37.265 21:47:37.265 -73.955741 40.3422  Dmart John 

И другой являются:

chef_name dish_name dish_price dish_quantity ratings 
0 xyz  Chicken  120   1    4 
1 abc  Paneer  100   2    3 

я хочу присоединиться к этим два dataframes в панде. Я выполнил конкатенацию, но это не позволяет мне выполнять, потому что первый dataframe имеет повторяющиеся значения.

Итак, я сделал это:

pd.concat([df1, df2], join='inner', axis=1) 

Но это дает мне следующий вывод:

dilevery_time dispatch_time source_long Address name chef_name 
0 21:39:37.265 21:47:37.265 -73.955741 Dmart John xyz 
0 21:39:37.265 21:47:37.265 -73.955741 Dmart John xyz 

    dish_name dish_price dish_quantity ratings 
0 Chicken  120    1    4 
0 Chicken  120    1    4 

И я хочу в этом формате:

dilevery_time dispatch_time source_long Address name chef_name 
0 21:39:37.265 21:47:37.265 -73.955741 Dmart John xyz 
0 21:39:37.265 21:47:37.265 -73.955741 Dmart John abc 

    dish_name dish_price dish_quantity ratings 
0 Chicken  120    1    4 
0 Paneer  100    2    3 

Как сделать это в пандах?

ответ

0

Это потому, что в первом DataFrame у вас есть индекс 0 дважды. Вы можете использовать метод reset_index, а затем получите свой результат:

In [9]: df 
Out[9]: 
    chef_name dish_name dish_price dish_quantity ratings 
0  xyz Chicken   120    1  4 
1  abc Paneer   100    2  3 

In [10]: df1 
Out[10]: 
    chef_name dish_name dish_price dish_quantity ratings 
0  xyz Chicken   120    1  4 
1  abc Paneer   100    2  3 

df1.reset_index(drop=True, inplace 

In [11]: pd.concat([df1, df2], join='inner', axis=1) 
Out[11]: 
    chef_name dish_name dish_price dish_quantity ratings dilevery_time \ 
0  xyz Chicken   120    1  4 21:39:37.265 
1  abc Paneer   100    2  3 21:39:37.265 

    dispatch_time source_lat source_long Address name 
0 21:47:37.265 -73.955741  40.3422 Dmart John 
1 21:47:37.265 -73.955741  40.3422 Dmart John 
Смежные вопросы