РЕДАКТИРОВАТЬ:
Самый простой способ:
>>> df1=df1.set_index('id')
>>> df2=df2.set_index('id')
использовать объединение_первых на df2
>>> df2.combine_first(df1)
value
id
100010 25
100011 22
100012 35
100013 36
СТАРЫЙ пост:
В качестве альтернативы, вы можете использовать стандартный словарь Python
>>> df1=df1.set_index('id')
>>> df2=df2.set_index('id')
сделать словарь из df1
>>> d = df1.to_dict( 'index' )
>>> d
{'100012': {'value': '30'}, '100010': {'value': '25'}, '100011': {'value': '22'}}
update()
с другим словарем для фреймов данных - дублирующимися ключамибудет обновлен полной строкой
>>> d.update( df2.to_dict( 'index' ) )
>>> d
{'100012': {'value': '35'}, '100013': {'value': '36'}, '100010': {'value': '25'}, '100011': {'value': '22'}}
Превратите его обратно в кадр данных:
>>> pd.DataFrame.from_dict( d, 'index' )
value
100010 25
100011 22
100012 35
100013 36
Если вы хотите сохранить все это в пандах - решение RafaelC лучше