Python 使用其他数据帧中的字符串替换值

Python 使用其他数据帧中的字符串替换值,python,pandas,replace,Python,Pandas,Replace,我想用名称(str)[dataset2]替换所有单元格值(int)[dataset1],其中[dataset2]的索引与[dataset1]中的值匹配 看起来很简单。。。但是我完全被卡住了。merge()将名称dataframe添加到每个值列上,然后进行清理 df1 = pd.DataFrame({"id":[1111,1122,1133,1144,1155,1166], "name":["red",&qu

我想用名称(str)[dataset2]替换所有单元格值(int)[dataset1],其中[dataset2]的索引与[dataset1]中的值匹配

看起来很简单。。。但是我完全被卡住了。

merge()
将名称dataframe添加到每个值列上,然后进行清理

df1 = pd.DataFrame({"id":[1111,1122,1133,1144,1155,1166],
              "name":["red","blue","green","yellow","magenta","black"]})
df2 = pd.DataFrame({"value1":[1122,1144,1166,1111,1111,1155],
             "value2":[np.nan,np.nan,1133,np.nan,1144,np.nan]})

output = (df2
 .merge(df1, left_on="value1", right_on="id", how="left")
 .rename(columns={"name":"name1"})
 .merge(df1, left_on="value2", right_on="id", how="left")
 .rename(columns={"name":"name2"})
 .drop(columns=["id_x","id_y","value1","value2"])
)

print(output.to_string())
输出
首先将实际数据粘贴到问题中,并将其格式化为代码,这样我们就可以复制/粘贴并帮助您解决问题。数据的图像不是很有用。使用
merge()
两次,您就有了答案。无法将数据显示为图像而不是文本
     name1   name2
0     blue     NaN
1   yellow     NaN
2    black   green
3      red     NaN
4      red  yellow
5  magenta     NaN