перезаписать и добавить фреймы данных pandas к значению столбца - PullRequest
0 голосов
/ 15 октября 2018

У меня есть базовый фрейм данных df1:

id   name   count
1    a       10
2    b       20
3    c       30
4    d       40
5    e       50

Здесь у меня есть новый фрейм данных с обновлениями df2:

id   name   count
1    a       11
2    b       22
3    f       30
4    g       40

Я хочу перезаписать и добавить эти два фрейма данных к имени столбца,например, a и b присутствуют в df1, но также и в df2 с обновленными значениями количества.Поэтому мы обновляем df1 новыми счетчиками для a и b.Так как f и g отсутствуют в df1, мы добавляем их.Вот пример после требуемой операции:

id   name   count
1    a       11
2    b       22
3    c       30
4    d       40
5    e       50
3    f       30
4    g       40

Я пробовал df.merge или pd.concat, но, похоже, ничего не дает мне вывод, который мне требуется.Может любой

1 Ответ

0 голосов
/ 15 октября 2018

Использование combine_first

df2=df2.set_index(['id','name'])
df2.combine_first(df1.set_index(['id','name'])).reset_index()
Out[198]: 
   id name  count
0   1    a   11.0
1   2    b   22.0
2   3    c   30.0
3   3    f   30.0
4   4    d   40.0
5   4    g   40.0
6   5    e   50.0
...