# 返回true/false bool型DataFrame 或者 Series
df.notna() / df.notnull() # 不是缺失为True,缺失=False
df.isna() / df.isnull() # 是缺失=True,不是缺失=False
df.col.notna() / df.col.isna() df[‘col‘].notnull() / df[‘col‘].isnull()# 支持Series
# 返回 bool型Series
df.isnull().any() # 列只要有一个缺失=True
df.isna().any(1) # 行只要有一个缺失=True
df.isnull().any().any() # 表级别判断
df.info() # 直接查看信息
df.isnull().sum() # 每列有多少个缺失值
df.isna().sum(1) # 每行有多少个缺失值
df.isna().sum().sum() # 总共有几个缺失值
df.count() # 统计列的非NaN个数
df.loc[:,df.isna().any()] # 返回有缺失的列(行全要,列只要为True的)
df.loc[df.isna().any(1)] # 返回有缺失的行
df.loc[~(df.isna().any(1))] # 返回没有缺失的行
df.fillna(value=None, method=None, axis=None,
inplace=False, limit=None, downcast=None, **kwargs)
功能说明:
Fill NA/NaN values using the specified method。
参数说明:
df.fillna(0) # 传入标量0,用0填充所有缺失值
# 每列向下填充2个缺省值,axis参数不起作用
df.fillna(value=1,axis=0,limit=2)
# df.fillna(value=0,axis=1,limit=2)
# 传入dict,每列分别用不同的值填充
df.fillna(value={‘A‘: 0, ‘B‘: 1, ‘C‘: 2, ‘D‘: 3})
# 用前一个值向前填充缺省值,限制填充个数为1,默认轴向为0(竖向填充)
df.fillna(method=‘ffill‘,limit=1)
# 用各自列的均值填充,假如该列可以计算均值的话
df.fillna(df.mean())
# 只对A列且用A列的均值填充缺省值
df.fillna({‘A‘: df.mean()[‘A‘]})
??Series 和 DataFrame 对象都有interpolate()方法,默认情况下,该函数在缺失值处执行线性插值。这个方法是利用数学方法来估计缺失点的值,对于较大的数据非常有用。
(待查补充)
df.dropna(axis=0, how=‘any‘, thresh=None, subset=None, inplace=False)
功能说明:
删除含有空值的行或列。
参数说明:
df.dropna() # 行只要有一个缺失值,就删除该行
df.dropna(axis=1) # 列只要有一个缺失值,就删除该列(谨慎使用!)
df.dropna(how=‘all‘,axis=1) # 列都缺失时,才删除该列
df.dropna(thresh=3) # 行至少有3个非缺失值才不删除
df.dropna(axis=1,subset=[3,4]) # 根据index为3和4的行,判断列是否删除
df.dropna(subset=["col_1","col_3"]) # 根据columns为"col_1"和"col_3"的列,判断行是否删除
df.col.dropna() # 指定列的缺失值删除
原文:https://www.cnblogs.com/xiaoshun-mjj/p/14877606.html