#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. Большое вам спасибо! Я обнаружил, что один из моих наборов данных также не был хорошим. Теперь он работает отлично благодаря вам