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