用另一个数据帧中的数据替换一个数据帧中的数据

时间:2019-08-02 11:33:08

标签: python pandas

我有两个数据帧,其中df1如下:

id  Status Colour 
 1      On   Blue
19      On    Red
 4      On  Green
56      On   Blue

df2看起来

id   Status
19      Off
 4     Even

如果两个数据帧中都存在Status,我试图用df1中的Status替换df2中的id数据框看起来像:

id  Status  Colour 
 1      On    Blue
19     Off     Red
 4    Even   Green
56      On    Blue 

我可以使用以下方法在df1中标识要更改的字段:

df1.loc[df1['id'].isin(df2['id']), 'Status'] = referenced date

但是我看不到如何识别df2中的字段以传递给df1(上述等号右侧的部分)

如果有人能让我知道我该怎么做,请问我将不胜感激吗?

谢谢

2 个答案:

答案 0 :(得分:1)

使用Series.map,用fillna替换不匹配的缺失值:

df1['Status'] = df1['id'].map(df2.set_index('id')['Status']).fillna(df1['Status'])
print (df1)
   id Status Colour
0   1     On   Blue
1  19    Off    Red
2   4   Even  Green
3  56     On   Blue

答案 1 :(得分:0)

尝试如下

env['x_duties'].create({'x_name': 'example'})