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