объединить_первый для более чем одной записи - PullRequest
0 голосов
/ 09 марта 2020

У меня есть два кадра данных: df1 и df2, каждый из которых содержит 30 столбцов. У меня есть набор из 7 столбцов, которые заполнены np.nan в df1. Я хочу использовать записи из df2 в тех же 7 столбцах, чтобы заполнить поля df1 nan в соответствующих столбцах. Чтобы удостовериться, что наны df1 заполнены правильно, я бы хотел найти уникальный идентификатор (доступный как в df1, так и в df2), но имейте в виду, что это не индекс, поскольку df1 имеет несколько повторений этого идентификатора. Одна вещь, с которой я столкнулся, заключается в том, что мои методы допускают только одну заливку, а это не то, что я хочу.

РЕДАКТИРОВАТЬ:

Во-первых, вот столбцы, которые я хочу в итоге заполнить:


cols = ['Analytics Source 1', 'User ID', 'User Email', 'Category', 'Source Title', 'Title', 'Date Created', 'Date Effective Start', 'Date Effective End']

Затем я создал кадр данных со всеми уникальными идентификаторами, единственное различие между фактическим кадром данных df и приведенным ниже состоит в том, что df имеет большое количество повторяющихся уникальных идентификаторов

df_conn = df[df['Principal Type'] != 'user']
df_conn = df_conn.drop_duplicates(subset='Notification ID')

Далее я хочу заполнить df значениями из df_conn, которые должны (теоретически) заполнить df, независимо от количества повторяющихся уникальных идентификаторов в df.

df_result = df.set_index('Notification ID').combine_first(df_conn.set_index('Notification ID'))
df_result = df_result.reset_index()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...