pandas基于列中的相同值合并数据帧

时间:2015-11-02 13:12:47

标签: python pandas dataframe

我有2个数据框如下:

   student_name student_id   
1  may          0000  
2  june         1111  
3  july         2222 

  member_id member_name school_name
1 A0        april       MIT
2 B0        may         NIT
3 C0        june        LIT

我想加入2数据帧,以产生如下结果。

student_name student_id member_id member_name school_name
may          0000       B0        may         NIT
june         1111       C0        june        LIT

我认为在sql方式中student_name = member_name。 但我几乎无法在熊猫中做到这一点。

我尝试过pandas merge,它可以基于同一个名字列。 你能教我一个简单的方法来得到所需的结果。

谢谢。

1 个答案:

答案 0 :(得分:7)

使用merge并传递列以分别合并left_paramright_param

In [27]:
df.merge(df1, left_on='student_name', right_on='member_name')

Out[27]:
  student_name  student_id member_id member_name school_name
0          may           0        B0         may         NIT
1         june        1111        C0        june         LIT