Как заменить значения 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