DataFrame中处理NaN的常用方法

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用于前向或后向填充时最大的填充范围
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值