【问题标题】:How to do multiple joins at same in pandas python?如何在 pandas python 中同时进行多个连接?
【发布时间】:2020-09-18 05:19:43
【问题描述】:

我有如下数据框,我需要在其中连接两个表并创建如下所示的预期输出以及如何完成

df1

Zone    Country

EU1      AT
EU1      BE
EU1      FR
AP2      IN
AP2      NZ

df2

Origin_Zone  Dest_zone  Key
  EU1          EU1        A
  AP2          EU1        B

预期输出

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 

如何在 pandas 中创建预期的输出

【问题讨论】:

    标签: python pandas dataframe join


    【解决方案1】:

    两个区域都使用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
    

    【讨论】:

    • 你是熊猫的超人。收集您的 Pandas 答案将为 Pandas 库提供最佳实用资源。
    • @PraysonW.Daniel - 我不这么认为,我只写了很多代码。我想有很多像我这样更好的 pandas 编码器,但他们显然太忙了。
    猜你喜欢
    • 2018-07-17
    • 2015-01-12
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    相关资源
    最近更新 更多