简体   繁体   English

如何在pandas python中同时进行多个连接?

[英]How to do multiple joins at same in pandas python?

I have data frame like below, where I need to join two tables and create the expected output as shown below and how can this be done我有如下所示的数据框,我需要在其中连接两个表并创建如下所示的预期输出以及如何完成此操作

df1 df1

Zone    Country

EU1      AT
EU1      BE
EU1      FR
AP2      IN
AP2      NZ

df2 df2

Origin_Zone  Dest_zone  Key
  EU1          EU1        A
  AP2          EU1        B

Expected output预期输出

Org       Dest  Key
AT        AT     A
AT        BE     A
AT        FR     A
BE        AT     A
BE        BE     A
BE        FR     A
FR        AT     A
FR        BE     A
FR        FR     A
IN        AT     B
IN        BE     B
IN        FR     B
NZ        AT     B
NZ        BE     B
NZ        FR     B 

How to create the expected output in pandas如何在熊猫中创建预期的输出

Use DataFrame.merge by both zones, then rename columns and select expected columns by list:两个区域都使用DataFrame.merge ,然后重命名列并按列表选择预期的列:

df = (df2.merge(df1, left_on='Origin_Zone',right_on='Zone')
         .merge(df1, left_on='Dest_zone',right_on='Zone')
         .rename(columns={'Country_x':'Org','Country_y':'Dest'})
         [['Org','Dest','Key']])
print (df)
   Org Dest Key
0   AT   AT   A
1   AT   BE   A
2   AT   FR   A
3   BE   AT   A
4   BE   BE   A
5   BE   FR   A
6   FR   AT   A
7   FR   BE   A
8   FR   FR   A
9   IN   AT   B
10  IN   BE   B
11  IN   FR   B
12  NZ   AT   B
13  NZ   BE   B
14  NZ   FR   B

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

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