我有一个数据框:
a b c
0 nan Y nan
1 23 N 3
2 nan N 2
3 44 Y nan
我希望得到这样的输出:
a b c d
0 nan Y nan nan
1 23 N 3 96
2 nan N 2 nan
3 44 Y nan 44
我希望有一个条件,当 a 列为空时,d 将为空,否则如果 b 列为 N 且 c 列不为空,则 d 列等于 a 列 * c 列 else column d 等于 a 列
我已经完成了这段代码,但我得到了错误:
def f4(row):
if row['a']==np.nan:
return np.nan
elif row['b']=="N" & row(row['c'].notnull()):
return row['a']*row['c']
else:
return row['a']
DF['P1']=DF.apply(f4,axis=1)
谁能帮我指出我的错误在哪里?我已经引用了这个并尝试了这个但也得到了错误 Creating a new column based on if-elif-else condition
最佳答案
使用
pd.isnull(df['Description'][i])
或
pd.isna(df['Description'][i])
关于python - 错误 : float object has no attribute notnull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44877663/