您需要
pandas.isnull检查标量是否为
NaN:
df = pd.Dataframe({ 'Col1' : [1,2,3,np.NaN], 'Col2' : [8,9,7,10]})df2 = df.apply(lambda x: x['Col2'] if pd.isnull(x['Col1']) else x['Col1'], axis=1)print (df) Col1 Col20 1.0 81 2.0 92 3.0 73 NaN 10print (df2)0 1.01 2.02 3.03 10.0dtype: float64
但更好的是使用
Series.combine_first:
df['Col1'] = df['Col1'].combine_first(df['Col2'])print (df) Col1 Col20 1.0 81 2.0 92 3.0 73 10.0 10
另一个解决方案
Series.update:
df['Col1'].update(df['Col2'])print (df) Col1 Col20 8.0 81 9.0 92 7.0 73 10.0 10
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)