Подтвердить что ты не робот

Pandas column bind (cbind) два кадра данных

У меня есть dataframe df_a с информацией об идентификаторе:

    unique_id lacet_number 
15    5570613  TLA-0138365 
24    5025490  EMP-0138757 
36    4354431  DXN-0025343 

и другой dataframe df_b, с тем же числом строк, которое, как мне известно, соответствует строкам в df_a:

     latitude  longitude 
0  -93.193560  31.217029  
1  -93.948082  35.360874  
2 -103.131508  37.787609  

То, что я хочу сделать, это просто cbind the two и получить:

    unique_id lacet_number      latitude  longitude 
0     5570613  TLA-0138365    -93.193560  31.217029  
1     5025490  EMP-0138757    -93.948082  35.360874  
2     4354431  DXN-0025343   -103.131508  37.787609  

Что я пробовал:

df_c = pd.concat([df_a, df_b], axis=1)

который дает мне внешнее соединение.

    unique_id lacet_number    latitude  longitude
0         NaN          NaN  -93.193560  31.217029
1         NaN          NaN  -93.948082  35.360874
2         NaN          NaN -103.131508  37.787609
15    5570613  TLA-0138365         NaN        NaN
24    5025490  EMP-0138757         NaN        NaN
36    4354431  DXN-0025343         NaN        NaN

Проблема в том, что индексы для двух фреймов данных не совпадают. Я прочитал документацию для pandas.concat и увидел, что есть опция "ignore_index". Но это относится только к оси конкатенации, в моем случае столбцы, и это, конечно, не правильный выбор для меня. Поэтому мой вопрос: есть ли простой способ достичь этого?

4b9b3361

Ответ 1

Если вы уверены, что значения строки индекса одинаковы, то, чтобы избежать порядка выравнивания индекса, просто вызовите reset_index(), это будет reset ваши значения индекса возвращаются для начала с 0:

df_c = pd.concat([df_a.reset_index(drop=True), df_b], axis=1)