python - 错误 : float object has no attribute notnull

标签 python pandas

我有一个数据框:

  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/

相关文章:

python - 如何使用 python 连接到远程 OpenVas 扫描仪?

python - 读取数据文件空白空间之间的行并写入新文件

python - 创建对标量求和的列

python - 如何将 python 字典放入 pandas 时间序列数据框中,其中键是日期对象

python - 如何在python中将一个数字转换成它的数字链表

python - 替代 `numpy.tile` 用于周期性掩码

python - 从小部件到小部件的自定义信号

python - 如何将多维的 pandas 系列转换为 pandas 数据框

python - 在 Pandas 数据框中使用多个参数 'apply'

python - 在 Pandas 中使用 to_sql() 时如何显式设置数据库引擎