Обработка пропущенных и неправильных значений в pandas Python - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь обработать пропущенные значения в моем наборе данных. Я использую pandas в Python 3. У меня есть столбец «имя», который должен содержать только имена людей, но он также содержит случайные числа. Как я могу удалить их или изменить их на NaN, чтобы потом я мог их отбросить или заполнить новыми именами. Вот как я обработал первые пропущенные значения:

df_test["name"] = df_test['name'].astype(str)
df_test['name'].replace('-inf', np.nan, inplace=True)
df_test['name'].replace('0', np.nan, inplace=True)
df_test

Вывод:

     name    
1    NaN         
2    NaN     
3    29014
...
10   21893
11   Amber Rose

Итак, первые два значения были '-inf' и '0', я заменил их на NaN, но как заменить случайные числа в строковом столбце? Должен ли я сделать это вручную?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете заменить числа на NaN, как показано ниже:

df_test = pd.DataFrame({
    'name': [np.NaN, np.NaN, '29014', '21893', 'Amber Rose']
})

df_test['name'] = np.where(
    pd.to_numeric(df_test['name'], errors='coerce').isnull()==False,
    np.NaN,
    df_test['name']
)

df_test
    name
0   NaN
1   NaN
2   NaN
3   NaN
4   Amber Rose
...