如何使用公共列作为参考将数据从数据框的列复制到另一个数据框?

时间:2018-05-22 12:29:40

标签: python excel dataframe

假设,

  • 数据框[df_acc]由列[Account_No,Phone_No]
  • 组成
  • 另一个由列组成的数据框[df_addr] [account_no上,城市,州,电话]

在这里,我希望使用Account_No作为参考,将电话号码从[Phone_no]列发送到dataframe [df_addr],列['电话']。

我尝试过,它成功地提取了值。

我的代码:

if (len(df_addr>0)):
    for i in df_addr['Account_No'].index:
        v_acc_no = df_addr['Account_No'][i]
        mask = df_acc['Account_No'].isin([v_acc_no])
        if (len(df_acc[mask])>0):
           for x in df_acc[mask].index:
                 df_addr['Phone'][i] = df_acc['Phone_No'][x]

但是,有没有办法让这段代码变得更好?

1 个答案:

答案 0 :(得分:1)

所以你需要merge

df_addr.merge(df_acc, on='Account_No')

您可以添加how='left'以保留df_addr中的所有记录,即使它们在df_acc中没有匹配,因为默认值为'inner'(十字路口)。

正如评论中提到的那样,如果列没有相同的名称,则应使用left_onright_on