2 回答
TA贡献1817条经验 获得超6个赞
您可以创建一个字典,to_dict然后使用replace:
df.replace(ndf.set_index('A').to_dict()['B'])
输出:
A
1 apple
2 b
3 apple
4 d
5 duck
详情:
print(ndf.set_index('A'))
A
a apple
2 pen
6 sky
e duck
print(ndf.set_index('A').to_dict())
{'B': {'a': 'apple', '2': 'pen', '6': 'sky', 'e': 'duck'}}
print(ndf.set_index('A').to_dict()['B'])
{'a': 'apple', '2': 'pen', '6': 'sky', 'e': 'duck'}
print(df.replace(ndf.set_index('A').to_dict()['B']))
A
1 apple
2 b
3 apple
4 d
5 duck
TA贡献1842条经验 获得超21个赞
dict从创建ndf,将其映射到df。combine_first将结果用于df.A。
df.A.map(dict(zip(ndf.A,ndf.B))).combine_first(df.A)
1 apple
2 b
3 apple
4 d
5 duck
Step by Step
`d= dict(zip(ndf.A,ndf.B))`#Create dict
df['C']= df.A.map(d)# map dict to df.A
df.A=df.C.combine_first(df.A)#Update df.A
添加回答
举报