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'])