Pandas: как использовать fillna() с определенными столбцами


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

Метод 1: используйте fillna() с одним конкретным столбцом

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

Способ 2: используйте fillna() с несколькими конкретными столбцами

df[['col1', 'col2']] = df[['col1', 'col2']]. 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. Использование fillna() с одним конкретным столбцом

В следующем коде показано, как использовать fillna() для замены значений 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

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

Пример 2. Использование fillna() с несколькими конкретными столбцами

В следующем коде показано, как использовать fillna() для замены значений 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

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

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

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

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

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

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