[英]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.