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


Функция pandas fillna() полезна для заполнения пропущенных значений в столбцах фрейма данных pandas.

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

import pandas as pd
import numpy as np

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

#view DataFrame
print(df)

 team points assists rebounds
0 A 25.0 5.0 11
1 NaN NaN 7.0 8
2 B 15.0 7.0 10
3 B NaN 9.0 6
4 B 19.0 12.0 6
5 C 23.0 9.0 5
6 C 25.0 NaN 9
7 C 29.0 4.0 12

Пример 1: заполнить пропущенные значения всех столбцов

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

#replace all missing values with zero
df.fillna(value= 0 , inplace= True )

#view DataFrame
print(df) 

 team points assists rebounds
0 A 25.0 5.0 11
1 0 0.0 7.0 8
2 B 15.0 7.0 10
3 B 0.0 9.0 6
4 B 19.0 12.0 6
5 C 23.0 9.0 5
6 C 25.0 0.0 9
7 C 29.0 4.0 12

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

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

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

#view DataFrame
print(df) 

 team points assists rebounds
0 A 25.0 5.0 11
1 NaN 0.0 7.0 8
2 B 15.0 7.0 10
3 B 0.0 9.0 6
4 B 19.0 12.0 6
5 C 23.0 9.0 5
6 C 25.0 0.0 9
7 C 29.0 4.0 12

Пример 3. Заполните пропущенные значения нескольких столбцов разными значениями

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

#replace missing values in three columns with three different values
df.fillna({'team':' Unknown', 'points': 0 , 'assists': ' zero '}, inplace= True )

#view DataFrame
print(df)

 team points assists rebounds
0 A 25.0 5 11
1 Unknown 0.0 7 8
2 B 15.0 7 10
3 B 0.0 9 6
4 B 19.0 12 6
5 C 23.0 9 5
6 C 25.0 zero 9
7 C 29.0 4 12

Обратите внимание, что каждое из отсутствующих значений в трех столбцах было заменено некоторым уникальным значением.