假设,
在这里,我希望使用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]
但是,有没有办法让这段代码变得更好?
答案 0 :(得分:1)
所以你需要merge:
df_addr.merge(df_acc, on='Account_No')
您可以添加how='left'
以保留df_addr
中的所有记录,即使它们在df_acc
中没有匹配,因为默认值为'inner'
(十字路口)。
正如评论中提到的那样,如果列没有相同的名称,则应使用left_on
和right_on
。