Python 3.x 当列的公用行存在但没有结果时,尝试用另一个数据帧的值替代数据帧的列的值

Python 3.x 当列的公用行存在但没有结果时,尝试用另一个数据帧的值替代数据帧的列的值,python-3.x,pandas,Python 3.x,Pandas,我有两个数据帧 db index| Line Item | Creative Size 1 | AA | Size1 2 | BB | Unknown 3 | CC | Unknown df1 index| Line Item | Size 1 | BB | Size2 2 | CC | Size3 当行项目代码相同时,我想用大小的值替换Creative Size的值。 我的预期产出是: db

我有两个数据帧

db
index| Line Item | Creative Size
1    | AA        | Size1
2    | BB        | Unknown
3    | CC        | Unknown

df1
index| Line Item | Size
1    | BB        | Size2
2    | CC        | Size3
当行项目代码相同时,我想用大小的值替换Creative Size的值。 我的预期产出是:

db:
index| Line Item | Creative Size
1    | AA        | Size1
2    | BB        | Size2
3    | CC        | Size3
请注意,df1的大小小于db的大小

我提出:

rename_dict = df2.set_index('Line Item').to_dict()['Size']
db['Creative Size'] = db['Creative Size'].replace(rename_dict)
但由于某种原因,它不起作用。 有什么帮助吗?还有其他方法吗?

您很接近,需要按列<代码>行项目和非匹配值替换为原始值:

db['Creative Size'] = db['Line Item'].map(rename_dict).fillna(db['Creative Size'])