Группа одинаковых символов с пробелом и без него независимо от регистра - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть набор данных, который содержит типы автомобилей, введенные пользователями со значениями, такими как: 1.6TDI, 1.6 TDI, 2.0TDI, 2,0 TDI, 3.0BlueTech, 3,0 blue tech и т. Д. Мне нужно для выравнивания этих значений.

Я бы поставил их все в верхний регистр для начинающих и заменил , на ., но я не знаю, как проверить одинаковый порядок символов и чисел ascii независимо от пробелов и сгруппировать их под одним значением.

Если я заменю пробелы ни на что, название модели будет выглядеть ужасно. Идея состоит в том, чтобы использовать значение, которое имеет наибольшее количество вхождений, и превращать другие значения в это значение.

Любые идеи более чем приветствуются ... Мне не нужен полный код, хороших указателей будет достаточно.

Объяснение

Идея состоит в том, чтобы найти одно истинное значение, например, 1,6 TDI, и выровнять все остальные появления с этим.

1 Ответ

2 голосов
/ 03 февраля 2020

Вы можете сделать что-то вроде этого

df['cars'] = df['cars'].str.upper().str.replace(',','.').str.replace(' ','')

Вход

           cars     val
0   1.6TDI          1
1   1.6 TDI         2
2   2.0TDI          3
3   2,0 TDI         3
4   3.0BlueTech     5
5   3,0 blue tech   4

Выход

           cars     val
0   1.6TDI          1
1   1.6TDI          2
2   2.0TDI          3
3   2.0TDI          3
4   3.0BLUETECH     5
5   3.0BLUETECH     4

Вы можете выполнять функции groupby, даже не конвертируя столбец, например

df.groupby(df['cars'].str.upper().str.replace(',','.').str.replace(' ',''))['val'].sum().reset_index(name='Sum')

Результат

           cars     Sum
0   1.6TDI          3
1   2.0TDI          6
2   3.0BLUETECH     9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...