Python 在给定列的交点上合并两个数据帧
我想在“Name”列的交点上合并以下两个数据帧 假设数据帧1是:Python 在给定列的交点上合并两个数据帧,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我想在“Name”列的交点上合并以下两个数据帧 假设数据帧1是: Name subject_id Marks_scored 0 Billy sub1 98 1 Amy sub2 90 2 Bran sub4 87 3 Alice sub6 69 4 Ayoung sub5 78 数据帧2是:
Name subject_id Marks_scored
0 Billy sub1 98
1 Amy sub2 90
2 Bran sub4 87
3 Alice sub6 69
4 Ayoung sub5 78
数据帧2是:
Name subject_id Marks_scored
0 Billy sub2 89
1 Brian sub4 80
2 Bran sub3 79
3 Bryce sub6 97
4 Betty sub5 88
我只希望输出为:
Name subject_id Marks_scored
0 Billy sub1 98
1 Bran sub4 87
2 Billy sub2 89
3 Bran sub3 79
pd.concat([df1,df2],axis=1,join='inner')
或
pd.merge(df1,df2,on='subject\u id',how='inner')
尝试使用pd.concat
然后使用复制的和布尔索引:
df_out = pd.concat([df1,df2])
df_out[df_out.duplicated('Name', keep=False)]
输出:
Name subject_id Marks_scored
0 Billy sub1 98
2 Bran sub4 87
0 Billy sub2 89
2 Bran sub3 79
如果您想要右连接how='right'或左连接how='left',我认为这两种方法都不能提供所需的输出可能df_out[df_out.Name.isin(set(df1.Name)&set(df2.Name))]
如果名称可以在给定帧内重复?是,很好,这比第一个更好,因为它解决了在同一数据帧中的“名称”中存在重复的问题,谢谢