Как заменить значения NaN на ноль в Pandas


Вы можете использовать следующие методы для замены значений NaN нулями в кадре данных pandas:

Метод 1: заменить значения NaN на ноль в одном столбце

df['col1'] = df['col1']. fillna (0)

Способ 2: заменить значения NaN на ноль в нескольких столбцах

df[['col1', 'col2']] = df[['col1', 'col2']]. fillna (0)

Способ 3: заменить значения NaN на ноль во всех столбцах

df = df.fillna(0)

В следующих примерах показано, как использовать каждый из этих методов со следующими пандами DataFrame:

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'points': [25, np.nan, 15, 14, 19, 23, 25, 29],
 'assists': [5, np.nan, 7, np.nan, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, np.nan, 9, np.nan]})

#view DataFrame
print(df)

 points assists rebounds
0 25.0 5.0 11.0
1 NaN NaN 8.0
2 15.0 7.0 10.0
3 14.0 NaN 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN

Метод 1: заменить значения NaN на ноль в одном столбце

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

#replace NaN values with zero in 'assists' column
df['assists'] = df['assists']. fillna (0)

#view updated DataFrame
print(df)

 points assists rebounds
0 25.0 5.0 11.0
1 NaN 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN

Обратите внимание, что значения NaN в столбце «ассисты» были заменены нулями, но значения NaN во всех остальных столбцах остались прежними.

Способ 2: заменить значения NaN на ноль в нескольких столбцах

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

#replace NaN values with zero in 'points' and 'assists' column
df[['points', 'assists']] = df[['points', 'assists']]. fillna (0)

#view updated DataFrame
print(df)

 points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN

Способ 3: заменить значения NaN на ноль во всех столбцах

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

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

#view updated DataFrame
print(df)

 points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 0.0
6 25.0 9.0 9.0
7 29.0 4.0 0.0

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

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

Как заменить определенные значения в Pandas
Как отфильтровать фрейм данных Pandas по значениям столбца
Как заполнить значения NA для нескольких столбцов в Pandas

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