Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在给定列的交点上合并两个数据帧_Python_Pandas_Dataframe_Merge - Fatal编程技术网

Python 在给定列的交点上合并两个数据帧

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”列的交点上合并以下两个数据帧

假设数据帧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       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))]
如果名称可以在给定帧内重复?是,很好,这比第一个更好,因为它解决了在同一数据帧中的“名称”中存在重复的问题,谢谢