关于空值和缺失值:
空值:在pandas中,空值就是空字符串 “”
缺失值:np.nan(缺失数值),pd.naT(缺失时间),或None(缺失字符串)
还有一类数据,比如 -999、0,可能是业务上定义的缺失值。
如何定义缺失值、空值?
如何定义缺失值和空值,见我之前的博客文章 《自定义dataframe时如何为个别元素赋空值和缺失值》
如何判断是否缺失值?如何查找筛选缺失值、空值?
df.isna() 和 df.notna(),可以判断出None、pd.NaT、np.NaN 三种类型的缺失值;
但是空字符串 “” 、0,不会认为是缺失值;
另外对于4字符的字符串“None”、“null” ,也不会认为是缺失值。
df.isnull() 等同于 df.isna()
df.notnull() 等同于 df.notna()
见下代码:
df = pd.DataFrame({"name": ['Alfred', None, 'Catwoman'],
"toy": [np.nan, '', 'Bullwhip'],
"born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT]})
df
# 找出 toy 列不为空的行
df[df['toy'].notna()