Оптимизация операции pandas: объединение столбцов имени / отчества / фамилии - PullRequest
0 голосов
/ 20 января 2020

Допустим, я беру образец имен, таких как эти, разделенных отдельными полями:

indx  First Name   Middle Name     Last Name
0     CHARITIXAN   K.R.,           NICHOLS
1           None   Johnny-Boy      CHAVEZ
2          ISAAC   None            ESPARZA
3        MICHAEL   nan             
4         Andrew                   Pfaff

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

indx  First Name   Middle Name     Last Name
0     CHARITIXAN   K.R.,           NICHOLS
1                  Johnny-Boy      CHAVEZ
2          ISAAC                   ESPARZA
3        MICHAEL               
4         Andrew                   Pfaff

Я хочу правильно объединить все части данного имени ТОЛЬКО с одним пробелом между каждым именем сегмент. Основываясь на моих исследованиях и реализации, лучшее решение, которое я нашел, было это - то, где использовалось re. Это оптимальный путь или есть что-то лучшее для этого конкретного случая?

Мой последний подход был таков:

df['full_name']=df[['First Name', 'Middle Name', 'Last Name']].apply(lambda x: re.sub(' +', ' ', ' '.join(x)), axis=1)

1 Ответ

1 голос
/ 20 января 2020

Вы можете применить объединение как:

df['full_name'] = df[['First Name','Middle Name', 'Last Name']].apply(lambda x: ' '.join(x), axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...