熊猫df.包含NaN值的条件



我正在尝试替换我的熊猫中的异常值和NaN值。使用apply方法和lambda函数,并通过属性进行过滤,使用该系列的模式获取DataFrame。我已经尝试了三种不同的方式,但它似乎没有捕捉到NaN值的情况。

df.apply(   lambda row: mode 
if (row['prop1']>quart95 or row['prop1']==np.nan) and row['prop2']=='some_value'
else row['prop1'], axis=1 )
df.apply(   lambda row: mode 
if (row['prop1']>quart95 or row['prop1']==None) and row['prop2']=='some_value'
else row['prop1'], axis=1 )
df.apply(   lambda row: mode 
if (row['prop1']>quart95 or not row['prop1']) and row['prop2']=='some_value'
else row['prop1'], axis=1 )

为什么它能找到异常值,但不能找到nan ?我该怎么修理它或做它?

假设mode为单个值(非列表):

df[df[column_name].isna() | df[column_name]>quart95] = mode

您可以使用bitwise OR operator (|)来完成此条件。请参考这个链接来了解更多的位运算符

最新更新