У меня есть большой массив данных, в котором есть столбец, который я хотел бы обновить новыми значениями из меньшего кадра данных, только если значения строк для другого столбца совпадают.Левое объединение имеет правильные строки, но два столбца значений, которые я хочу «обновить» (левый и правый).Я попытался выполнить левое слияние с каплями, но, конечно, это уничтожает значения в столбце, который я пытаюсь обновить, если соответствующий столбец не совпадает.Я также пробовал варианты этого:
tips.loc[tips['tip'] < 2, 'tip'] = 2
, но я получаю ошибку о том, что длины серий должны совпадать, потому что таблица, из которой я обновляюсь, меньше.Я также посмотрел на DataFrame.combine_first (), но документы не показывают, что он принимает какие-либо параметры и не выдает того, что я ищу.
Вот пример:
df = pd.DataFrame({'CAT': ['A', 'B', 'C', 'D', 'E'], 'Value': [12, 34, np.NaN, 43, 21]})
CAT Value
0 A 12
1 B 34
2 C NaN
3 D 43
4 E 21
df2 = pd.DataFrame({'CAT': ['C', 'F', 'G'], 'Value': [22, 99, 44]})
CAT Value
0 C 22
1 F 99
2 G 44
результат должен выглядеть следующим образом:
CAT Value
0 A 12
1 B 34
2 C 22
3 D 43
4 E 21
Хотя в левом кадре в этом примере обновляется NaN, яне смотря исключительно на этот случай.Я хочу перезаписать любое значение.Любая помощь?Thx.