【问题标题】:Python merge 2 lists / SQL JOINPython 合并 2 个列表 / SQL JOIN
【发布时间】:2015-09-21 11:28:59
【问题描述】:

如果我在 python 中有 2 个列表或数据框(熊猫),我该如何合并/匹配/加入它们?

例如:

列表/DF 1:

Table_Name  Table_Alias
  tab_1          t1
  tab_2          t2
  tab_3          t3

列表/DF 2:

Table_Alias   Variable_Name
    t1            Owner
    t1            Owner_Id
    t2            Purchase_date
    t3            Maintenance_cost

期望的结果:

Table_Name   Table_Alias   Variable_Name
   tab_1         t1            Owner
   tab_1         t1            Owner_Id
   tab_2         t2            Purchase_date
   tab_3         t3            Maintenance_cost

注意:如果我在 R 中这样做,我会使用类似的东西:

df3 <- merge(df1, df2, by = 'Table_Alias', all.y = T)

在 python 中最好的方法是什么?

【问题讨论】:

    标签: python join pandas merge


    【解决方案1】:

    你想要一个“外部”merge

    In [9]:
    df.merge(df1, how='outer')
    
    Out[9]:
      Table_Name Table_Alias     Variable_Name
    0      tab_1          t1             Owner
    1      tab_1          t1          Owner_Id
    2      tab_2          t2     Purchase_date
    3      tab_3          t3  Maintenance_cost
    

    它将匹配来自两个 dfs 的重叠列并返回匹配行的并集。

    【讨论】:

      【解决方案2】:

      我会简单地使用pd.merge(df1, df2, how='outer',on='alias')

      df1 = pd.DataFrame({ "table_name":['tab1',"tab2","tab3"],"talias ['t1','t2','t3']})
      df2 = pd.DataFrame({"talias":['t1',"t1","t2",'t3'], "vname,['Owner','Owner_Id','Purchase_date','Maintenance_cost']})
      
      
      pd.merge(df1,df2,how='outer', on='talias')
      
      
      Out:
          Table_Alias Table_Name  Variable_Name
      0   t1  tab1    Owner
      1   t1  tab1    Owner_Id
      2   t2  tab2    Purchase_date
      3   t3  tab3    Maintenance_cost
      

      【讨论】:

        猜你喜欢
        • 2022-06-28
        • 1970-01-01
        • 2021-03-24
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        相关资源
        最近更新 更多