Как скопировать данные из столбца фрейма данных в другой фрейм данных, используя общий столбец в качестве ссылки? - PullRequest
0 голосов
/ 22 мая 2018

Предположим,

  • Существует фрейм данных [df_acc], состоящий из столбцов [Account_No, Phone_No]
  • Другой фрейм данных [df_addr], который состоит из столбцов [Account_No, City, State, Телефон]

Здесь я хочу получить номера телефонов из столбца [Phone_no] во фрейм данных [df_addr], столбец ['Phone'], используя Account_No в качестве ссылки.

Я пыталсяделает это, и он успешно извлекает значения.

Мой код:

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 голосов
/ 22 мая 2018

Так что вам просто нужно объединить :

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

Вы можете добавить how='left', чтобы сохранить все записи из df_addr, даже если они не совпадают в df_acc по умолчанию - 'inner' (пересечение).

Как отмечалось в комментариях, left_on и right_on следует использовать, если столбцы не имеют одно и то же имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...