我有两个表格的数据框: 表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
现在如何根据pandas中的dataframe3加入dataframe1和dataframe2?
答案 0 :(得分:1)
我们的想法是将你的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)
答案 1 :(得分:0)
您可以使用双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