Python For循环查找中不为NaN的值

Python For循环查找中不为NaN的值,python,pandas,null,Python,Pandas,Null,我试图创建一个语句,如果我的数据帧中的对象是notna,并且Book_状态为True,则继续执行下一个任务。然而,当我尝试这样做时,我得到“float”对象没有属性“notna” 我已经研究了np.where,但它似乎被用来创建一个列? 示例数据帧 name quote id Book_Status Park foobar300 False Bus NaN False Car NaN

我试图创建一个语句,如果我的数据帧中的对象是notna,并且Book_状态为True,则继续执行下一个任务。然而,当我尝试这样做时,我得到“float”对象没有属性“notna”

我已经研究了np.where,但它似乎被用来创建一个列?

示例数据帧

name       quote id       Book_Status
Park       foobar300      False
Bus        NaN            False
Car        NaN            False
这是我的代码,它给出了我的错误

def BookEvent(df):
    y = 0
    for i in range(len(df_parking.index)):
        if df['quote id'][y].notna() & df['Book_Status'][y] == False:
          # Then do something unrelated to this df

在使用标量的解决方案中,因此需要使用
&
而不是使用
,但此循环解决方案速度较慢:

if pd.notna(df['quote id'][y]) and df['Book_Status'][y] == False:
但在熊猫身上,戴口罩更好/更快,比如:

mask = df['quote id'].notna() & ~df['Book_Status']
df['new'] = np.where(mask, 10, 20)

print (df)
   name   quote id  Book_Status  new
0  Park  foobar300        False   10
1   Bus        NaN        False   20
2   Car        NaN        False   20