你可以使用下面的语法将pandas数据框架中某一列的NaN值替换为另一列的值。
df['col1'] = df['col1'].fillna(df['col2'])
这个特殊的语法会将col1中的任何NaN值替换为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()函数将team1 列中的NaN值替换成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
注意,team1列中的两个NaN值都被team2列中的相应数值所取代。
注意:你可以在这里找到fillna()函数的完整在线文档。
其他资源
下面的教程解释了如何在pandas中执行其他常见操作: