Python 从一个数据帧中查找另一个数据帧中缺少的值的正确方法
我有一个包含两个字段的数据框,包括名为“name”和名为“df1”的“team”。我想根据每个人的用户id添加一个名为“用户id”的附加列,该列可以在基于该人的“团队”的单独数据框中找到 “用户id”值可以在其他数据框中找到,这些数据框由团队字段分隔,名为“df_a”、“df_b”、“df_c”。。。等等。这些数据帧中的每一个都包含相同的三个字段(“名称”、“团队”和“用户id”),但每一个都只包含来自该团队的名称,并且每个数据帧都是完整的(在任何列中都找不到NAN) 我想知道最具python风格的方法是使用我的团队数据帧中的数据将“user_id”列添加到df1(可能有许多团队数据帧,但每个都相对较小)。到目前为止,我已经尝试循环遍历每个团队数据帧,并使用内部合并和左侧合并,基于“name”字段将它们合并到df1中,但输出结果要么是原始数据帧中缺少行,要么是输出许多“user_id_x”、“user_id_y”列,其中填充了nan 数据帧示例: df1: df_a: df_b:Python 从一个数据帧中查找另一个数据帧中缺少的值的正确方法,python,pandas,merge,Python,Pandas,Merge,我有一个包含两个字段的数据框,包括名为“name”和名为“df1”的“team”。我想根据每个人的用户id添加一个名为“用户id”的附加列,该列可以在基于该人的“团队”的单独数据框中找到 “用户id”值可以在其他数据框中找到,这些数据框由团队字段分隔,名为“df_a”、“df_b”、“df_c”。。。等等。这些数据帧中的每一个都包含相同的三个字段(“名称”、“团队”和“用户id”),但每一个都只包含来自该团队的名称,并且每个数据帧都是完整的(在任何列中都找不到NAN) 我想知道最具python风
name team user_id
0 jane doe b 6325
1 amy doe b 6164
2 sally doe b 6294
df_c:
name team user_id
0 steve doe c 52956
1 jane smith c 83635
2 john johnson c 54871
这是我从每个团队数据帧中获取用户id值后所需的输出:
name team user_id
0 john doe a 15368
2 jane doe b 6325
3 amy doe b 6164
4 jane smith c 83635
5 john johnson c 54871
如果有什么我可以澄清的,请告诉我,并提前感谢 试试这个
main_df=pd.concat([df_a,df_b,df_c],ignore_index=True)
df=pd.merge(df,main_df,how='left',on=['name','team'])
连接所有df_x数据帧,然后执行左连接
输出:
name team user_id
0 john doe a 15368
1 jane doe b 6325
2 amy doe b 6164
3 jane smith c 83635
4 john johnson c 54871
打印输出(主df):
main_df=pd.concat([df_a,df_b,df_c],ignore_index=True)
df=pd.merge(df,main_df,how='left',on=['name','team'])
name team user_id
0 john doe a 15368
1 jane doe b 6325
2 amy doe b 6164
3 jane smith c 83635
4 john johnson c 54871
name team user_id
0 john doe a 15368
1 john smith a 15382
2 sally smith a 15212
3 jane doe b 6325
4 amy doe b 6164
5 sally doe b 6294
6 steve doe c 52956
7 jane smith c 83635
8 john johnson c 54871