DataFrame中的 nan 值的处理方法

  1. 删除  所有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 是列名

参考:

删除DataFrame中某列值为NaN的记录/行

Python数据预处理--缺失值处理

python数据预处理(1)———缺失值处理

你可能感兴趣的:(python学习,python,开发语言)