GOOGLE ADS

среда, 4 мая 2022 г.

Кадры данных Python Match 2 по имени, где одно — полное имя, а другое — инициалы имени и фамилия

Я пытаюсь объединить 2 фрейма данных по имени, где один столбец - это имя + фамилия, а другой - только первое имя + фамилия.

Пример:

дф1:

name
John Doe

дф2:

name
J. Doe

Решение проблемы

Вы можете использовать регулярное выражение, чтобы изменить формат df1['name']и передать это merge:

df1.merge(df2,
left_on=df1['name'].str.replace(r'^(.)\w+', r'\1.', regex=True),
right_on='name'
)

NB. проверьте документацию mergeдля получения дополнительных параметров для форматирования вывода, в частности suffixesдля настройки имен столбцов.

выход:

name name_x name_y
0 J. Doe John Doe J. Doe

пример ввода:

df1 = pd.DataFrame({'name': ['John Doe']})
df2 = pd.DataFrame({'name': ['J. Doe']})

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...