我想基于df1.Name
中的映射表覆盖我的(df2.Name1, df2.Name2)
值。然而,并非df1.Name
中的所有值都存在于df2.Name1
DF1型:
Name
Alex
Maria
Marias
Pandas
Coala
DF2型:
Name1 Name2
Alex Alexs
Marias Maria
Coala Coalas
预期结果:
Name
Alexs
Maria
Maria
Pandas
Coalas
我在网上尝试过几种解决方案,比如使用map函数。通过在我使用的字典中旋转
df2
,但这将导致df1.Name = df1.Name.map(Dictionary)
中所有值的nan
,如下所示。Name
Alexs
Maria
Maria
NAN
Coalas
我不知道如何使用if语句来替换df2中存在的语句,并根据df1保留其余语句。
我还试图创建一个带有
df2
语句的函数,但是失败了。我怎样才能解决这个问题?
最佳答案
使用replace
df1.Name.replace(df2.set_index('Name1').Name2.to_dict())
Out[437]:
0 Alexs
1 Maria
2 Maria
3 Pandas
4 Coalas
Name: Name, dtype: object
关于python - 仅当值存在时,才通过vlookup另一个数据框替换列中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48269844/