循环中无产生



如果缺失,为什么此函数返回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

相关内容

  • 没有找到相关文章

最新更新