Pandas: как заполнить значения NaN значениями из другого столбца


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

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

Этот конкретный синтаксис заменит любые значения NaN в col1 соответствующими значениями в col2 .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Замена пропущенных значений другим столбцом

Предположим, у нас есть следующие Pandas DataFrame с некоторыми пропущенными значениями:

import numpy as np
import pandas as pd

#create DataFrame with some NaN values
df = pd.DataFrame({'team1': ['Mavs', np.nan, 'Nets', 'Hawks', np.nan, 'Jazz'],
 'team2': ['Spurs', 'Lakers', 'Kings', 'Celtics', 'Heat', 'Magic']})

#view DataFrame
df

 team1 team2
0 Mavs Spurs
1 NaN Lakers
2 Nets Kings
3 Hawks Celtics
4 NaN Heat
5 Jazz Magic

Обратите внимание, что в столбце team1 есть два значения NaN.

Мы можем использовать функцию fillna() , чтобы заполнить значения NaN в столбце team1 соответствующим значением в столбце team2 :

#fill NaNs in team1 column with corresponding values in team2 column
df['team1'] = df['team1']. fillna(df['team2'])

#view updated DataFrame 
df

 team1 team2
0 Mavs Spurs
1 Lakers Lakers
2 Nets Kings
3 Hawks Celtics
4 Heat Heat
5 Jazz Magic

Обратите внимание, что оба значения NaN в столбце team1 были заменены соответствующими значениями в столбце team2 .

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

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

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

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

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