nan在df中不被识别.Loc或for循环



我目前有一个列Outliers的df。当我这样做的时候:

df.Outliers.value_counts(dropna = False)

我:

NaN    2862
1.0     600
0.0     257

但是,当我尝试只显示这些行时:

df.loc[df.Outliers == np.nan] # numpy was imported as np

得到0行的输出。为什么NaN行不能被识别为NaN?我已经验证了这些NaN值的类型为numpy.float64,因此它们不是需要转换的字符串。为什么他们有时不被认为是nan ?

Pandas有时在使用np.nan时需要帮助,因为它并不总是被正确识别。但是,您可以使用isna()查找包含nan

的数据的所有列/行。
df = pd.DataFrame({
'Column1' : [np.nan, 2, 3, 4],
'Column2' : [1, np.nan, 3, np.nan]
})
df.loc[df['Column1'].isna()]

最新更新