Переименовать ошибочные категориальные значения в Python - PullRequest
0 голосов
/ 17 октября 2018

У меня есть категориальная переменная с некоторыми ошибочными значениями или "неизвестно" / "не указано".Есть ли способ переименовать эти конкретные значения с помощью наиболее распространенных (в моем случае «Компьютер»)?Спасибо!

df['platform'].value_counts()
Out[41]: 
Computer       5433941
Tablet         4415217
Mobile         4229074
Unspecified    1716370
Unknown          48113
Big screen        9850
UNKNOWN            269
comp                 1
Name: platform, dtype: int64

Ответы [ 2 ]

0 голосов
/ 17 октября 2018
replace = ['Unspecified', 'Unknown']
final_value = df['platform'].value_counts().idxmax()
def replace_values(x):
    if x in replace:
        return final_value
    else:
        return x
df['platform'] = df['platform'].apply(replace_values)

Используя idxmax, вы можете получить значение с максимальной частотой.Затем используйте функцию apply для замены значения

, если в столбце платформ также есть нулевые значения:

df['platform'] = df['platform'].apply(lambda x: replace_values(x) if pd.notnull(x) else x)
0 голосов
/ 17 октября 2018

Вы можете определить функцию для замены метки и использовать apply для вашего столбца.

to_replace = ['Unspecified','Unknown]
target = 'Computer'
def label_restrictor(label,to_replace=to_replace,target=target):
    if label in to_replace:
        return(target)
    else:
        return(label)

Затем вы примените эту функцию к соответствующему столбцу:

df.platform.apply((lambda label: label_restrictor(label)),inplace=True)

И вуаля!

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