Объединение путем зеркального отображения одинаковых значений столбцов разных фреймов данных

#python #pandas #dataframe #concatenation #mirroring

Вопрос:

Я просто хочу создать один фрейм данных (df3) с помощью concatenate и путем зеркалирования одинаковых значений столбцов двух разных фреймов данных (df1 и df2). Это просто пример, когда мои наборы данных намного больше.

 > df1
  id_synthese1 format_1 ville
0             .dat       tours                      
1             .map       bordeaux
2             .sig       marseille                       

> df2
  id_synthese2 format_2  etude
0             .map       environnement                      
1             .sig       geotec
2             .dat       sismique
 

Я хотел бы получить результат, подобный

 > df3
  id_synthese1 format_1 ville       id_synthese2      format_2     etude    
0             .dat       tours                  2     .dat         sismique
1             .map       bordeaux               0     .map         environnement
2             .sig       marseille              1     .sig         geotec
 

«Зеркальное отображение» выполняется между столбцами: format_1 и format_2

Я пробовал

 df3= pd.merge(df1, df2, on=['format_1','format_2'], how='outer')
 

и

 df3= df1.join(
    df2.set_index(['format_1','format_2']),
    lsuffix="_x",
    rsuffix="_y",
    on=['format_1','format_2'])
 

и

 df3= pd.concat([df1, df2], axis=1)
 

Спасибо (я знаю, что это просто… Я новичок)

Комментарии:

1. где format_brute1 и format_brute2 входит в это? Я не вижу их в ваших фреймах данных

2. Мой плохой, я изменил имена. Я попробовал использовать правильные имена фреймов данных format_1 и format_2. Я внес изменения, спасибо

Ответ №1:

передайте left_on = "format_1" и right_on = "format_2" вместо on параметра в вашем pd.merge вызове

https://pandas.pydata.org/docs/reference/api/pandas .DataFrame.merge.html

Комментарии:

1. Большое вам спасибо! Я обнаружил, что один из моих наборов данных также не был хорошим. Теперь он работает отлично благодаря вам