df_a
и df_b
- это два кадра данных, которые выглядят следующим образом
df_a
A B C D E
x1 Apple 0.3 0.9 0.6
x1 Orange 0.1 0.5 0.2
x2 Apple 0.2 0.2 0.1
x2 Orange 0.3 0.4 0.9
x2 Mango 0.1 0.2 0.3
x3 Orange 0.3 0.1 0.2
df_b
A B_new F
x1 Apple 0.3
x1 Mango 0.2
x1 Orange 0.1
x2 Apple 0.2
x2 Orange 0.3
x2 Mango 0.1
x3 Orange 0.3
x3 Mango 0.2
x3 Apple 0.1
Я хочу, чтобы мой final_df
содержал все строки, содержащиеся в df_a
, так что уникальная комбинация A иB == A и B_new в df_b
.
Я попытался выполнить внешнее соединение, а затем отбросить дубликаты по столбцам A и B в final_df
, но значение B_new не сохраняется.
Вот как я хочу, чтобы мой result_df
выглядел так:
result_df
A B C D E B_new F
x1 Apple 0.3 0.9 0.6 Apple 0.3
x1 Orange 0.1 0.5 0.2 Orange 0.1
x2 Apple 0.2 0.2 0.1 Apple 0.2
x2 Orange 0.3 0.4 0.9 Orange 0.3
x2 Mango 0.1 0.2 0.3 Mango 0.1
x3 Orange 0.3 0.1 0.2 Orange 0.3
Я также пробовал левое внешнее соединение:
final_df = pd.merge(df_a, df_b, how="left", on=['A'])
Размер этого кадра данных представляет собой объединение df_a
и df_b
, что не то, что я хочу.
Ценю любые предложения.