繁体   English   中英

如何根据熊猫中的第三个数据框联接两个数据框?

[英]how to join two dataframes according to third dataframe in pandas?

我有两个形式的数据框:表1

sid   student_details
1      A
2      B
3      C

表2

did   dept_details
    4      E
    5      F
    6      G

表3:

sid    did
1    5
3    4
2    6

现在如何根据熊猫中的dataframe3将dataframe1和dataframe2连接起来?

想法是将df3加入第一个。

df = df1.set_index('sid').join(df3.set_index('sid')).reset_index()
df = df.set_index('did').join(df2.set_index('did')).reset_index().drop('did', 1)

您可以使用双重merge

print df1
     sid student_details
0    1               A
1    2               B
2    3               C

print df2
   did dept_details
0    4            E
1    5            F
2    6            G

print df3
   sid  did
0    1    5
1    3    4
2    2    6

print pd.merge(pd.merge(df1, df3, on=['sid']), df2, on=['did'])

   sid student_details  did dept_details
0    1               A    5            F
1    2               B    6            G
2    3               C    4            E

或者,如果您已设置索引:

print df1
    student_details
sid                
1                 A
2                 B
3                 C

print df2
    dept_details
did             
4              E
5              F
6              G

print df3
     did
sid     
1      5
3      4
2      6

print pd.merge(pd.merge(df1, df3, left_index=True, right_index=True).set_index('did'),
                        df2, left_index=True, right_index=True)

    student_details dept_details
did                             
4                 C            E
5                 A            F
6                 B            G

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM