возникают трудности с пониманием работы этой части кода - PullRequest
0 голосов
/ 14 марта 2019
# Sample Data
df2 = pd.DataFrame({'description': ['d1', 'd2', 'd3'], 
                   'specialties': ['a1 A1,b2 B2,c3 C3', 'd4 D4,e4 E4,f5 F5,f6 F6', 'g5,h6,i7']}, 
                  index=['name1', 'name2', 'name3'])
df2['specialties'] = [','.join(x) for x in df2['specialties'].map(lambda x: x.lower().replace(' ','').split(',')).values]

Приведенный выше фрагмент кода берет значения из столбца «специальности», преобразует их в нижние и удаляет пробелы между словами.Я не понимаю, как вышеприведенная строка кода на самом деле работает и изменяет значения.Может кто-нибудь объяснить мне это?

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

name1         a1a1,b2b2,c3c3
name2    d4d4,e4e4,f5f5,f6f6
name3               g5,h6,i7
Name: specialties, dtype: object

1 Ответ

0 голосов
/ 14 марта 2019

Чтобы проанализировать, что происходит, нужно разбить хотя бы два утверждения.

Первый запуск:

df2['specialties'].map(lambda x: x.lower().replace(' ','').split(',')).values

Принимает каждое значение в столбце 'specialties' и передает его в функцию map, которая запускает следующие методы. lower, replace и split на запятых. Это возвращает список строк в нижнем регистре.

Теперь, используя этот возвращенный список, вы затем соединяете части списка вместе, используя понимание списка и объединение.

[','.join(x) for x in newlist]

И, воссоздавая список столбцов, переданный строчными буквами.

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