1.缺失数据可以使用isna或isnull
1.同时对几个列,检索出全部为缺失或者至少有一个缺失或者没有缺失的行
sub_set = df[[‘Height’, ‘Weight’, ‘Transfer’]]
df[sub_set.isna().all(1)] # 全部缺失
2.df[sub_set.isna().any(1)].head() # 至少有一个缺失
3.df[sub_set.notna().all(1)].head() # 没有缺失
2.ropna的主要参数为轴方向axis(默认为0,即删除行)、删除方式how、阈值thresh、备选的删除子集subset。
1.删除身高体重至少有一个缺失的行:
res = df.dropna(how = ‘any’, subset = [‘Height’, ‘Weight’])
2.删除超过15个缺失值的列:
res = df.dropna(1, thresh=df.shape[0]-15) # 身高被删除
3.利用fillna进行填充
1.有时为了更加合理地填充,需要先进行分组后再操作。例如,根据年级进行身高的均值填充:
df.groupby(‘Grade’)[‘Height’].transform(lambda x: x.fillna(x.mean())).head()
4.插值函数
1.最近邻插补,即缺失值的元素和离它最近的非缺失值元素一样:
s.interpolate(‘nearest’).values
5.缺失数据的计算和分组
1.当调用函数sum, prob使用加法和乘法的时候,缺失数据等价于被分别视作0和1,即不改变原来的计算结果:
2.当使用累计函数时,会自动跳过缺失值所处的位置:
3.当调用函数sum, prob使用加法和乘法的时候,缺失数据等价于被分别视作0和1,即不改变原来的计算结果:
转:joyful pandas