Python学习笔记:数据清洗之缺失值填充fillna
在数据建模过程中,针对入模的数据需做数据清洗,特别针对缺失数据。
缺失数据比较多的情况下,可以考虑直接删除;缺失数据较少的情况下,可对数据进行填充。
此时,fillna()
则派上用场。语法为:
fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
# inplace=True 直接修改原对象 缺省False
# method取值:pad、ffill、backfill、bfill、None 缺省None
# pad/ffill:用前一个非缺失值填充
# backfill/bfill:用后一个非缺失值填充
# limit:限制填充个数
# axis:修改填充方向
创建测试数据框:
import pandas as pd
import numpy as np
from numpy import nan
data = pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
data.iloc[0:2, 0:3] = nan
print(data)
'''
0 1 2 3
a 3 4 5 6
b 7 8 9 10
c 11 12 13 14
d 15 16 17 18
0 1 2 3
a NaN NaN NaN 6
b NaN NaN NaN 10
c 11.0 12.0 13.0 14
d 15.0 16.0 17.0 18
'''
- 用0填充
data.fillna(0)
- 用每列特征的均值填充
data.fillna(data.mean())
- 用每列特征的中位数填充
data.fillna(data.median())
- 用相邻后面(back)特征填充前面缺失值
data.fillna(method='bfill')
- 用相邻前面(before)特征填充后面空值
import pandas as pd
import numpy as np
from numpy import nan
data = pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
data.iloc[1:2, 0:3] = nan
print(data)
data.fillna(method='pad')
- 利用字典对不同列填充不同值
values = {0:10, 1:20, 2:30} # 列名:填充值
data.fillna(value=values)
- 控制填充个数
data.fillna(method='bfill', limit=2)
- 按行填充
data.fillna(method='ffill', limit=1, axis=1)
参考链接:fillna()函数详解
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)