[*]
Код: Выделить всё
A
Код: Выделить всё
B
В настоящее время я использую следующий подход Pandas: < /p>
Код: Выделить всё
import pandas as pd
A = pd.DataFrame({
'A1': [1, 2, 3],
'A2': ['X', 'Y', 'Z'],
'D': [10, 20, 30]
})
B = pd.DataFrame({
'A1': [2, 3, 4, 2],
'A2': ['Y', 'Z', 'W', 'Y'],
})
B = B.merge(A, how='left', on=['A1', 'A2'], suffixes=('', '_A'))
B.drop(columns=[col for col in B.columns if col.endswith('_A')], inplace=True)
print(B)
Код: Выделить всё
A1 A2 D
0 2 Y 20.0
1 3 Z 30.0
2 4 W NaN
3 2 Y 20.0
Я ищу более быстрый способ достичь того же отображения, кроме как с использованием Merge Полем Выход должен сохранить все строки из B, заполняя отсутствующие значения из A, где применимо. Одним из недостатков этого подхода является удаление ненужных столбцов из -за левого соединения, чтобы сделать его совместимым для моего нижнего кода.
Что я попробовал: < /p>
Использование Update () , но он не очень хорошо работает с мульти-ключом.
Вопрос:
Есть ли более эффективный способ отображения d от до b быстрее без ненужных операций столбцов?
Подробнее здесь: https://stackoverflow.com/questions/794 ... owed-dataf