一、缺失值处理 isnull( ) 、fillna( ) 、dropna( )

(1)查看

  • 缺失

查看数据集缺失,返回每列的缺失个数 df.isnull().sum()

查看某字段有缺失的行 df[df.a.isnull()]

查看某字段每行的缺失情况:返回T/F:df.score.isnull() 、返回0/1:df.score.isnull().astype(int)

  • 缺失占比

返回每列的缺失占比:df.apply(lambda col:sum(col.isnull())/col.size)

行的缺失占比大于60%的列:data.ix[data.isnull().sum(axis=1)/data.shape[1]>0.6,:]

列的缺失占比大于60%的行:data.isnull().sum(axis=0)/data.shape[0]>0.6

  • 可视化

import missingno as msno

msno.bar(Customer, color='IndianRed')

(2)填补 fillna

  • 以指定值填补:

#填补一列:df.a.fillna(df.a.mean/median()),#mean:使用均值填补、median:使用中位数填补

#填补多列:

fill_cols=['a','b','c']

fill_values={col:df[col].mode()[0] for col in fill_cols} #使用每个字段的值的众数填补

df=df.fillna(fill_values)

  • 通过字典调用fillna:df.fillna({'a': 0.55, 'b': 0.66} , inplace=True)
  • df.fillna(method='ffill', limit=2) limit:对于前向和后向填充可以连续填充的最大数量
  • 利用随机森林对缺失值预测填充函数

def set_missing(df):

# 把已有的数值型特征取出来

process_df = df.ix[:,[12,1,2,3,4,5,6,7,8,9,10,14,16]]

# 分成已知该特征和未知该特征两部分

known = process_df[process_df.StockMoney>0].as_matrix()

unknown = process_df[process_df.StockMoney==0].as_matrix()

# X为特征属性值

X = known[:, 1:]

# y为结果标签值

y = known[:, 0]

# fit到RandomForestRegressor之中

rfr = RandomForestRegressor(random_state=0,

n_estimators=200,max_depth=3,n_jobs=-1)

rfr.fit(X,y)

# 用得到的模型进行未知特征值预测

predicted = rfr.predict(unknown[:, 1:]).round(0)

print(predicted)

# 用得到的预测结果填补原缺失数据

df.loc[(df.StockMoney==0), 'StockMoney'] = predicted

return df

Data=set_missing(data07)

(3)删除 dropna

  • df=df.dropna(subset=['a','b','c'],how='any'/'all',inplace=True)
  • 删除缺失率超过80%的字段(首先筛选缺失超过80%的列):df.drop(columns=['a','b'])
  • df.dropna(thresh=2) 这一行除去NA值,剩余数值的数量大于等于2,便显示这一行。

二、重复值处理duplicated( )、drop_duplicates( )

(1)查看

  • 查看数据集重复,返回重复的行数

df.duplicated().sum()

(df.duplicated(subset=['a','b','c'])).sum()

  • 查看指定字段有的重复的行

df[df.a.duplicated()]

df[df.duplicated(subset=['a','b','c'])] #isnull( )没有此用法

  • 查看指定字段的重复情况,返回T/F:df.a.duplicated()、返回0/1:df.a.duplicated().astype(int)

(2)去重

  • df.drop_duplicates()

df.drop_duplicates(subset=None, keep='first', inplace=False)

keep : {‘first’, ‘last’, False}, default first’删除重复项并保留第一次出现的项(duplicated和drop_duplicates默认保留的是第一个出现的值组合)

python数据预处理_Python数据预处理——缺失值、重复值相关推荐

  1. 如何用python进行数据预处理_Python数据预处理

    数据预处理是指在对数据进行数据挖掘之前,先对原始数据进行必要的清洗.集成.转换.离散和规约等一系列的处理工作,已达到挖掘算法进行知识获取研究所要求的最低规范和标准.通常数据预处理包括:数据清洗.数据集 ...

  2. python数据预处理_Python数据预处理

    1.缺失值处理 1.1缺失值查看 在Python中直接调用info()方法就会返回每一列的缺失情况. Python中缺失值一般用NaN表示,从用info()方法的结果来看,地区.销量跟销售额这三列是1 ...

  3. python的数据清理_Python数据清理,清洗

    一.数据清洗与准备 1.缺失值 NaN(np.nan): 对数值型数据,浮点值NaN(not a number) NA(not available) None 均为缺失值,通过data.isnull( ...

  4. python 数据类_python数据类

    前言 之前有写过一篇python元类的笔记,元类主要作用就是在要创建的类中使用参数metaclass=YourMetaclass调用自定义的元类,这样就可以为所有调用了这个元类的类添加相同的属性了. ...

  5. python matplotlib画数据分布图_Python数据可视化之matplotlib

    数据可视化能让人们更直观的传递数据所要表达的信息.Python 中有两个专用于可视化的库,matplotlib 和 seaborn ,本文将介绍matplotlib. Matplotlib:基于Pyt ...

  6. python数据输出_python数据输出

    下面的是我的code, 但是最后的结果全部都是others,有哪位大神能帮忙看产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式.这个函数传递表达式转换为一个字符串,如下结果 ...

  7. python交互式数据可视化_python数据可视化工具

    熟知python的人都知道,python上常用的一款数据可视化工具是Matplotlib,但是Matplotlib是静态的.那么,Python中除了matplotlib外,还有哪些数据可视化工具呢?其 ...

  8. python组合数据分类_Python 数据可视化:分类特征统计图

    上一课已经体验到了 Seaborn 相对 Matplotlib 的优势,本课将要介绍的是 Seaborn 对分类数据的统计,也是它的长项. 针对分类数据的统计图,可以使用 sns.catplot 绘制 ...

  9. python客户画像_Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

最新文章

  1. MySQL 微秒慢查询补丁
  2. Mybatis 3 返回布尔值,需要注意的地方
  3. CMT跟踪算法学习笔记
  4. C++多线程编程(入门实例)
  5. 局域网弱口令扫描工具_漏洞扫描软件AWVS的介绍和使用
  6. (推荐)jQuery性能优化指南
  7. poi设置自动换行后显示不全_抖音企业号权益之POI领多和地址内容编辑,视频编辑...
  8. php批量修改怎么实现,PinPHP购物分享系统2.2后台批量采集修改实现方法
  9. CC2530单片机入门学习
  10. 射频天线设计-窄带阻抗匹配电路设计
  11. maya 阿诺德水晶材质_Maya自带Arnold中的Ai Standard Surface材质如何渲染透明贴图?...
  12. java求方程的解_给定一个 n 元一次方程组,求方程组的解。(java8)
  13. C++后台开发面试常考
  14. 浅析文本挖掘(jieba模块的应用)
  15. 微信小程序 - 解决 rich-text 富文本解析图片无法自适应宽高问题(图片超出屏幕宽度且不受控)
  16. 软考高级-信息系统管理师之质量管理(最新版)
  17. 手把手带你用viewpager实现gallary效果,外加无限循环,自动轮播
  18. Spark的RDD的弹性体现在什么地方?------面试题
  19. python控制excel降序排列_Python实现EXCEL表格的排序功能示例
  20. 【CVPR2022】Detecting Camouflaged Object in Frequency Domain

热门文章

  1. Android PopupWindow使用,下拉式PopupWindow,底部式PopupWindow
  2. 阻止html页面加载,如何防止页面加载重复的JS?
  3. 使用php创建一个注册表单,如何实现一个简单的注册表单
  4. java windows7 环境变量_Windows7环境变量中,系统变量与用户变量的优先级
  5. 【C语言进阶深度学习记录】三十二 函数指针与使用函数指针实现回调函数
  6. 微服务架构和SOA的区别
  7. 求交错序列前N项和(15 分)
  8. extern、static
  9. 子集生成 --二进制法
  10. Scrapy--1安装和运行