python数据预处理_Python数据预处理——缺失值、重复值

一、缺失值处理 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默认保留的是第一个出现的值组合)

7de9ca450a6b0a1bb25e62fd08464d87.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vb如何测试连接mysql_VB怎么连接访问Access数据库?

VB是我们常常会见到的一款可视化程序设计语言,它的功能十分强大,因此有很多人会使用它,但是有时候我们需要用到VB来连接Access数据库,但是却无从下手,那么VB怎么连接访问Access数据库呢?不懂的朋友请看以下…

pthread 简要使用指南

http://www.2cto.com/kf/201208/151995.html http://www.2cto.com/kf/201208/151997.html转载于:https://www.cnblogs.com/alanhu/p/4677399.html

textarea如何在文字后面_FLASH如何制作风吹文字的效果

使用动作补间动画可以制作各种各样的动态效果,树叶飘落、蝴蝶飞舞等。这里再使用引导层动画结合动作补间动画制作风吹文字飞起的效果。主要知识点:引导层动画、动作补间动画FLASH如何制作树叶飘落​jingyan.baidu.comFlash如何制作飞舞的蝴蝶​jingyan.b…

ef mysql 外键 一对一_EFCore-一对一配置外键小记2

前后两次遇到这样的错误:The property xx on entity type xxxx has a temporary value. Either set a permanent value explicitly or ensure that the database is configured to generate values for this property.多数情况下是表配置关系会出现这样的问题。我实…

矩阵快速幂 HDU3483

1 #include <iostream>2 #include <cstring>3 4 using namespace std;5 6 //矩阵大小上限7 const int SIZ100;8 int MOD;9 10 //矩阵大小为n*m&#xff0c;初始化全部为011 struct mat12 {13 int n,m;14 long long ar[SIZ][SIZ];15 mat()16 {17 …

哲学家就餐问题python_Python实现哲学家就餐问题实例代码

哲学家就餐问题&#xff1a; 哲学家就餐问题是典型的同步问题&#xff0c;该问题描述的是五个哲学家共用一张圆桌&#xff0c;分别坐在五张椅子上&#xff0c;在圆桌上有五个盘子和五个叉子&#xff08;如下图&#xff09;&#xff0c;他们的生活方式是交替的进行思考和进餐&am…

mongodb 库数量限制_MongoDB in 数量限制

1、查询语句本身其实是一个document&#xff0c; 最大为16MB(3.4&#xff0c;4.0 的限制&#xff0c;官方文档)2、查询语句本身&#xff0c;也就是{ : { $in : [] }}&#xff0c; 大小为 22字节3、每增加一个字段名&#xff0c;增加一位字节4、in里面每增加一个参数&#xff0…

Webx框架:Pipeline基本介绍

Pipeline。它是管道的含义。一个管道阀门可以安装非常多。有许多可能的分支。它是用来控制页处理。它需要在被定义pipeline.xml文件。该文件是为每个阀的标签。该文件可以放一些简单的控制语句。在项目。这条管线有以下配置足够好。 <services:pipeline xmlns"http://w…

fpga摄像头模块_FPGA开源项目:双目测距(一)之双目图像采集显示以及图片保存...

1.简述这个项目是大三下学期暑假(也就是2019年8份)完成的&#xff0c;当时的视频效果已发布在bilibili上&#xff0c;这是我们的省级的科研立项&#xff0c;其实就我一个人负责完成。发布bilibili后很多人比较感兴趣&#xff0c;打算年初回学校完成毕设期间开源的&#xff0c;一…

python查找公共前缀_Python实现查找字符串数组最长公共前缀示例

本文实例讲述了Python实现查找字符串数组最长公共前缀。分享给大家供大家参考&#xff0c;具体如下&#xff1a;编写一个函数来查找字符串数组中的最长公共前缀。 class Solution:def longestCommonPrefix(self, strs):""":type strs: List[str]:rtype: str&quo…

博客搬家了

新博客&#xff1a;http://lindawhite.gq转载于:https://www.cnblogs.com/linda586586/p/4682027.html

github ssh 配置_Github远程仓库克隆更新本机,SSH协议免密操作配置和注意事项

Github远程仓库-克隆远程仓库到本机 【重点】目标如何克隆远程仓库到本机呢&#xff1f;小结下载项目的命令&#xff1a;git clone https://gitee.com/kekesam/sassweb777.git注意&#xff1a;1&#xff1a;它会自动创建本地仓库&#xff1b;2&#xff1a;它也会自动和远程仓库…

mysql查询库表变更信息_PythonMySQL进行数据库表变更和查询

这篇文章主要介绍了Python MySQL进行数据库表变更和查询的相关资料,需要的朋友可以参考下Python连接MySQL&#xff0c;进行数据库表变更和查询&#xff1a;python mysql insert delete query&#xff1a;#!/usr/bin/pythonimport MySQLdbdef doInsert(cursor,db):#insert# Prep…

CSS实现不固定宽度和高度的自动居中

有时候我们需要实现下面这种效果&#xff1a;嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#xff0c;撑大高度不让你剧中嘎嘎&#…

golang中文文档_【译】Go 语言源码贡献官方指导文档

以前给 Go 语言项目源码提交过一些 commits&#xff0c;期间阅读他们的官方指导文档的时候觉得这篇指导文档可以作为绝佳的关于大型软件项目的规范管理的参考&#xff0c;因为最近又提交了几个 commits&#xff0c;就又把这篇文档再看了一遍&#xff0c;有感于 Go 团队在项目管…

mysql增加最大连接数_mysql最大连接数怎么设置

设置mysql最大连接数的方法&#xff1a;首先打开mysql的控制台&#xff1b;然后输入语句【set GLOBAL max_connections1000;】即可直接设置最大连接数。通常&#xff0c;mysql的最大连接数默认是100, 最大可以达到16384&#xff1b;如果我们想修改mysql的最大连接数&#xff0c…

Hbase Interface HConnection

HTablePool 在Hbase 0.94、0.95、0.97被废弃&#xff0c;在0.98中被清除&#xff08; HTablePool 对比HConnection.getTable&#xff09;&#xff0c;hbase0.98 HTablePool会被逐渐废弃&#xff0c;直到0.98的发行版本中会被清楚。使用新的API&#xff0c;HConnection.getTable…

让一个动画一直执行的属性是_iOS 动画 一

View AnimationsAnimatable properties• bounds: 改变 bounds 属性可以在当前 view 内改变子视图等的相对位置。• frame: 改变 frame 可以移动或者缩放 view 。• center: 当你想移动 view 到屏幕的新位置时&#xff0c;可以改变此属性。• backgroundColor: 背景颜色。• al…

阿里云java mysql环境_阿里云搭建centos java mysql nginx环境

1.上传下载yum install lrzszsz下载rz上传2.安装压缩命令yum install -y unzip zip;3.安装javarpm -ivh jdk-8u161-linux-x64.rpm4.安装mysqlyum install libaioyum -y remove mariadb-libs-5.5*rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpmrpm -ivh mysql-commun…

ide快捷键_一款好用的IDE怎么可以没有代码提示?

我在使用过IntelliJ IDEA(一款Java开发工具)之后&#xff0c;感觉Delphi的IDE在编写代码方面尤其是代码提示方面和IntelliJ IDEA相比真的天差地别&#xff0c;所以决定认真的研究一下Delphi的代码提示功能一般情况下我们使用Delphi的开发工具都会安装cnpack专家包&#xff0c;但…