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