DataFrame中处理NaN的常用方法

处理缺失值的常用方法

  • 1.删除
  • 2.将NaN值替换为自定义的值
  • 3.使用前后的值填充
  • 4.众数填充缺失值
  • 5.平均数填充缺失值

1.删除

删除包含 NaN 的值

// An highlighted block
# 删除包含NaN值得任何行
pd.dropna(axis = 0);
// An highlighted block
# 删除包含NaN值得任何列
pd.dropna(axis = 1);
// An highlighted block
# 删除所有都是空值的行
pd.dropna(how='all');

假设只想保留包含一定数量的观察值,可以用thresh参数

// An highlighted block
# 删除有两个空值的行
pd.dropna(thresh =2 );

注意:

  • .dropna() 方法不在原地地删除具有 NaN 值的行或列。
  • 原始 DataFrame 不会改变。你始终可以在 dropna() 方法中将关键字inplace 设为 True,在原地删除目标行或列。

2.将NaN值替换为自定义的值

将通过前向填充 (ffill) 方法沿着给定 axis 使用上个已知值替换 NaN 值

// An highlighted block
返回的是一个新的对象,但你也可以修改已经存在的对象:
pd.fillna(0,inplace=True)
// An highlighted block
对第1,2列替换
pd.fillna({1:0.5,2:0})
// An highlighted block
pd['index'] = pd['index'].fillna(0)

3.使用前后的值填充

用前列填充

// An highlighted block
#用前面一列的值来填充NaN,限制前两行
pd.fillna(method = 'ffill',limit=2 )

用后列填充

// An highlighted block
#用后面一列的值来填充NaN
pd.fillna(method = 'backfill')

用后面一行填充

# 用后面一行的值来填充NaN
pd.fillna(method = 'backfill', axis = 1)

4.众数填充缺失值

// An highlighted block
pd['index']= pd['index'].fillna(pd['index'].mode()[0])

5.平均数填充缺失值

// An highlighted block
pd['index'] = pd['index'].fillna(pd['index'].mean())

fillna函数参数

参数 描述
value 标量值或字典型对象用于填充缺失值
method 插值方法,如果没有其他参数,默认是‘ffill’
axis 需要填充轴,默认axis=0
inplace 修改被调用对象,而不是生成一个备份
limit 用于前向或后向填充时最大的填充范围

你可能感兴趣的:(DataFrame,数据清理,缺失值,NaN,空值)