您好, 我有两个数据帧,我想在第一个数据帧中更改两个数据帧中具有相同ID的值, 假设我有:
df1 = [ID price
1 200
4 300
5 120
7 230
8 110
9 90
12 180]
和
df2 = [ID price count
3 340 27
4 60 10
5 290 2]
替换后:
df1 = [ID price
1 200
4 60
5 290
7 230
8 110
9 90
12 180]
我的第一次尝试:
df1.loc[df1.ID.isin(df2.ID),['price']] = df2.loc[df2.ID.isin(df1.ID),['price']].values
但这不正确。
答案 0 :(得分:4)
假设ID
是索引(或可以设置为索引),那么您可以update
:
In []:
df1.update(df2)
df1
Out[]:
price
ID
1 200.0
4 60.0
5 290.0
7 230.0
8 110.0
9 90.0
12 180.0
如果您需要set_index()
:
df = df1.set_index('ID')
df.update(df2.set_index('ID'))
df1 = df.reset_index()