- 删除 所有nan
df.dropna()
#dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
关于dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数的说明:
- axis:默认是0,即删除行。1或者columns则是删除列
- how:删除方式。any删除至少有一个NaN的行/列;all删除全部都是NaN的行/列
- thresh:阈值。int,删除的行/列至少有n个NaN值
- subset:列表。columns或者index,只删除指定列/行
- df=df.dropna(subset=['列名'])
2. 填充
df['列名1'].fillna(value = 30,inplace=True)
df.fillna(value = 30,inplace=True)
# 填充所有nan
- value = 30,用30填补空值
- value = df['列名1'].mean() 均值填充
- value = df['列名1'].median() 中位数填充
- value = df.Mer_min_distance.mode()[0] 众数填充
3. 按列选取没有 nan的部分
df = df[pd.notnull(df['a'])]
4. 按列选取包含 nan的部分
df = df[pd.isnull(df['d'])] # 包含nan的部分
df = df[~pd.isnull(df['d'])] # 不包含nan的部分
5. 不知道是啥,但也能达到 按列提取非nan 的部分
df = df.query('a == a') # a 是列名
参考: