例如,我在Python中有一个DataFrame,用people_name,fav_color best_friend_name命名人员。我的查询应该如何,以便我可以添加一个新列,该列是他们最好的朋友最喜欢的颜色,即best_friend_fav_color?
我的数据是这样的:
{'Name' : ['John', 'Leo', 'Mary'],
'fav_color' : ['Red', 'Blue', 'Green'],
'Best_friend_name' : ['Leo', 'Mary', 'John']}
预期输出如下:
{'Name' : ['John', 'Leo', 'Mary'],
'fav_color' : ['Red', 'Blue', 'Green'],
'Best_friend_name' : ['Leo', 'Mary', 'John'],
'Best_friend_fav_color' = ['Blue', 'Green', 'Red']}
我们可以假设最好的朋友将永远在数据框中。
这很容易做到:
首先复制数据以创建两个数据帧:
df2 = df[['Name', 'fav_color']].copy()
接下来,加入此人和最佳朋友姓名上的两个数据帧:
res = df.merge(df2, how='left', left_on='Best_friend_name', right_on='Name')
res
将包含您要查找的输出。它的列将需要重命名。你会注意到你会有 fav_color_x
和 fav_color_y
.要重命名,只需将正确的名称分配给res.columns
,如下所示:
res.columns = ['Name', 'fav_color', 'Best_friend_name', 'Name2', 'Best_friend_fav_color']
您注意到两Name
列了吗?您可以简单地删除"Name2"。