Как использовать Pandas fillna() для замены значений NaN


Вы можете использовать функцию fillna() для замены значений NaN в кадре данных pandas.

Эта функция использует следующий базовый синтаксис:

#replace NaN values in one column
df['col1'] = df['col1']. fillna (0)

#replace NaN values in multiple columns
df[['col1', 'col2']] = df[['col1', 'col2']]. fillna (0) 

#replace NaN values in all columns
df = df.fillna(0)

В этом руководстве объясняется, как использовать эту функцию со следующими пандами DataFrame:

import numpy as np
import pandas as pd

#create DataFrame with some NaN values
df = pd.DataFrame({'rating': [np.nan, 85, np.nan, 88, 94, 90, 76, 75, 87, 86],
 'points': [25, np.nan, 14, 16, 27, 20, 12, 15, 14, 19],
 'assists': [5, 7, 7, np.nan, 5, 7, 6, 9, 9, 5],
 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#view DataFrame
df

 rating points assists rebounds
0 NaN 25.0 5.0 11
1 85.0 NaN 7.0 8
2 NaN 14.0 7.0 10
3 88.0 16.0 NaN 6
4 94.0 27.0 5.0 6
5 90.0 20.0 7.0 9
6 76.0 12.0 6.0 6
7 75.0 15.0 9.0 10
8 87.0 14.0 9.0 10
9 86.0 19.0 5.0 7

Пример 1. Замена значений NaN в одном столбце

В следующем коде показано, как заменить значения NaN нулями в столбце «рейтинг»:

#replace NaNs with zeros in 'rating' column
df['rating'] = df['rating']. fillna (0)

#view DataFrame 
df

 rating points assists rebounds
0 0.0 25.0 5.0 11
1 85.0 NaN 7.0 8
2 0.0 14.0 7.0 10
3 88.0 16.0 NaN 6
4 94.0 27.0 5.0 6
5 90.0 20.0 7.0 9
6 76.0 12.0 6.0 6
7 75.0 15.0 9.0 10
8 87.0 14.0 9.0 10
9 86.0 19.0 5.0 7

Пример 2. Замена значений NaN в нескольких столбцах

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

#replace NaNs with zeros in 'rating' and 'points' columns
df[['rating', 'points']] = df[['rating', 'points']]. fillna (0)

#view DataFrame
df

 rating points assists rebounds
0 0.0 25.0 5.0 11
1 85.0 0.0 7.0 8
2 0.0 14.0 7.0 10
3 88.0 16.0 NaN 6
4 94.0 27.0 5.0 6
5 90.0 20.0 7.0 9
6 76.0 12.0 6.0 6
7 75.0 15.0 9.0 10
8 87.0 14.0 9.0 10
9 86.0 19.0 5.0 7

Пример 3. Замена значений NaN во всех столбцах

В следующем коде показано, как заменить значения NaN в каждом столбце нулями:

#replace NaNs with zeros in all columns 
df = df.fillna(0)

#view DataFrame
df

 rating points assists rebounds
0 0.0 25.0 5.0 11
1 85.0 0.0 7.0 8
2 0.0 14.0 7.0 10
3 88.0 16.0 0.0 6
4 94.0 27.0 5.0 6
5 90.0 20.0 7.0 9
6 76.0 12.0 6.0 6
7 75.0 15.0 9.0 10
8 87.0 14.0 9.0 10
9 86.0 19.0 5.0 7

Полную онлайн-документацию по функции fillna() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как подсчитать пропущенные значения в Pandas
Как удалить строки со значениями NaN в Pandas
Как удалить строки, содержащие определенное значение в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.