如果缺失,为什么此函数返回None
?当缺少值时,我只需要NaN
。
def func(row):
if (pd.notna(row['year'])):
if (pd.notna(row['fruit'])) & (pd.notna(row['signifiance'])):
return row['fruit']
elif (pd.isna(row['fruit'])) & (pd.notna(row['signifiance'])):
return row['fruit']
else:
return np.NaN
df['new_col'] = df.apply(func, axis=1)
df fruit year price vol signifiance
0 apple 2010 1 5 NaN
1 apple 2011 2 4 NaN
2 apple 2012 3 3 NaN
3 NaN 2013 3 3 NaN
4 NaN NaN NaN 3 NaN
5 apple 2015 3 3 important
实际输出:
df fruit year price vol signifiance new_col
0 apple 2010 1 5 NaN None
1 apple 2011 2 4 NaN None
2 apple 2012 3 3 NaN None
3 NaN 2013 3 3 NaN None
4 NaN NaN NaN 3 NaN None
5 apple 2015 3 3 important apple
预期输出:
df fruit year price vol signifiance new_col
0 apple 2010 1 5 NaN NaN
1 apple 2011 2 4 NaN NaN
2 apple 2012 3 3 NaN NaN
3 NaN 2013 3 3 NaN NaN
4 NaN NaN NaN 3 NaN NaN
5 apple 2015 3 3 important apple
改变为
def func(row):
if (pd.notna(row['year'])):
if (pd.notna(row['fruit'])) & (pd.notna(row['signifiance'])):
return row['fruit']
elif (pd.isna(row['fruit'])) & (pd.notna(row['signifiance'])):
return row['fruit']
else:
return np.NaN
else:
return np.NaN
df.apply(func,axis=1)
Out[178]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 apple
dtype: object