Скажем, у меня есть два DataFrames, где один концептуально является подмножеством другого.Как я могу эффективно перенести данные из подмножества в надмножество?Вот некоторые данные для работы:
import pandas as pd
sup = pd.DataFrame({'row': [0, 0, 0, 1, 1, 1, 2, 2],
'col': [0, 1, 2, 0, 1, 2, 1, 2], 'val': 1.3})
# col row val
# 0 0 0 1.3
# 1 1 0 1.3
# 2 2 0 1.3
# 3 0 1 1.3
# 4 1 1 1.3
# 5 2 1 1.3
# 6 1 2 1.3
# 7 2 2 1.3
sub = pd.DataFrame({'Row': [2, 0, 1], 'Column': [2, 1, 0], 'Value': [1.1, 4.4, 2.4]})
# Column Row Value
# 0 2 2 1.1
# 1 1 0 4.4
# 2 0 1 2.4
Я знаю, что могу эффективно объединить два DataFrames:
sup.merge(sub, left_on=['row', 'col'], right_on=['Row', 'Column'])
# col row val Column Row Value
# 0 1 0 1.3 1 0 4.4
# 1 0 1 1.3 0 1 2.4
# 2 2 2 1.3 2 2 1.1
Но как я могу перезаписать значения вsup['val']
с теми, которые совпадают с sub['Value']
?В моей реальной ситуации sup
составляет около 40 тыс. Строк, а sub
- только 1 тыс. Строк.
В этом примере желаемым результатом будет:
# col row val
# 0 0 0 1.3
# 1 1 0 4.4
# 2 2 0 1.3
# 3 0 1 2.4
# 4 1 1 1.3
# 5 2 1 1.3
# 6 1 2 1.3
# 7 2 2 1.1