pandas数据清洗策略2
首先,我们先要读入数据:
然后检查数据出现的问题:
1.没有表头,增加表头
2.去除重复值:
df.duplicate()使用布尔数据查看数据表中是否有重复值,df.drop_duplicates(),删去重复的值
这里有两点需要说明:第一,数据表中两个条目间所有列的内容都相等时duplicated才会判断为重复值。(Duplicated也可以单独对某一列进行重复值判断)。第二,duplicated支持从前向后(first),
和从后向前(last)两种重复值查找模式。默认是从前向后进行重复值的查找和判断。换句话说就是将后出现的相同条件判断为重复值。
df.drop_duplicates(),删去重复的值
Pandas中查找数据表中空值的函数有两个,一个是函数isnull,如果是空值就显示True。另一个函数notnull正好相反,如果是空值就显示False。
以下两个函数的使用方法以及通过isnull函数获得的空值数量。
对于空值有两种处理的方法,第一种是使用fillna函数对空值进行填充,可以选择填充0值或者其他任意值。第二种方法是使用dropna函数直接将包含空值的数据删除。
df.fillna(0), df.dropna()
还有一种经常的用法是使用平均值代替,比如假设loan amount列中与空值,我们可以采用平均值代表空值
df['loan amount']=df['loan amount'].fillna(df['loan amount'].mean())
接下来换索引:
用法是df.set_index('column')
数据间的空格:
空格会影响我们后续会数据的统计和计算。从下面的结果中就可以看出空格对于常规的数据统计造成的影响。
df['LOAN_Status'].value_counts()
Python中去除空格的方法有三种,第一种是去除数据两边的空格,第二种是单独去除左边的空格,第三种是单独去除右边的空格。
df['LOAN_Status']=df['LOAN_Status'].map(str.strip)#删除左右俩边的空格
df['LOAN_Status']=df['LOAN_Status'].map(str.lstrip)#删除左边空格
df['LOAN_Status']=df['LOAN_Status'].map(str.rstrip)#删除右边空格
大小写转换
大小写转换的方法也有三种可以选择,分别为全部转换为大写,全部转换为小写,和转换为首字母大写。
df['LOAN_Status']=df['LOAN_Status'].map(str.upper)#全部大写
df['LOAN_Status']=df['LOAN_Status'].map(str.lower)#全部小写
df['LOAN_Status']=df['LOAN_Status'].map(str.title)#首字母写
最后我们还需要对数据表中关键字段的内容进行检查,确保关键字段中内容的统一。主要包括数据是否全部为字符,字母或数字。
df['weight'].apply(lambda x:
x.isalpha())#检查该列是否全部为字符
df['weight'].apply(lambda x:
x.isalnum())#检查该列是否全部为数字
df['weight'].apply(lambda x:
x.isalpha())#检查该列是否全部为字母
第一步是更改和规范数据格式,所使用的函数是astype。下面是更改数据格式的代码:
df['loan amount']=df['loan amount'].astype(np.int64)#数据格式处理
df['register_date']=pd.to_datetime(df['register_date'])#日期格式的数据需要使用to_datatime函数进行处理
数据中的异常和极端值
用describe函数可以生成描述统计结果。其中我们主要关注最大值(max)和最小值(min)情况。
使用平均值代替,公式:
df.replace([23],df['loan amount'].mean())
数据分组
把weight数据进行分组
bins=[30,35,40,45]
group_names=['A','B','C','D']
df['categories']= pd.cut(df['weight'],bins, labels=group_names)
数据分列
pandas数据清洗策略2的更多相关文章
- pandas数据清洗策略1
Pandas常用的数据清洗5大策略如下: 1.删除 DataFrame 中的不必要 columns 2.改变 DataFrame 的 index 3.使用 .str() 方法来清洗 columns 4 ...
- 2.pandas数据清洗
pandas是用于数据清洗的库,安装配置pandas需要配置许多依赖的库,而且安装十分麻烦. 解决方法:可以用Anaconda为开发环境,Anaconda内置了许多有关数据清洗和算法的库. 1.安装p ...
- Python | Pandas数据清洗与画图
准备数据 2016年北京PM2.5数据集 数据源说明:美国驻华使馆的空气质量检测数据 数据清洗 1. 导入包 import numpy as np import matplotlib.pyplot a ...
- Pandas 数据清洗常用篇
一.缺失值 sklearn中的preprocessing下有imputer,可进官方文档参考.这里主讲pandas. 拿到数据,一般先检查是否有缺失值,用isnul()或notnull(). 再决定d ...
- pandas数据清洗
1.我已安装好Anavonda3.5.所以我只用打开"jupyter notebook",然后打开浏览器 然后点击右侧的“new",然后打开python3
- 数据清洗记录,pandas
pandas数据清洗:http://www.it165.net/pro/html/201405/14269.html data=pd.Series([1,2,3,4]) data.replace([1 ...
- Pandas模块
前言: 最近公司有数据分析的任务,如果使用Python做数据分析,那么对Pandas模块的学习是必不可少的: 本篇文章基于Pandas 0.20.0版本 话不多说社会你根哥!开干! pip insta ...
- Python数据处理常用工具(pandas)
目录 数据清洗的常用工具--Pandas 数据清洗的常用工具 Pandas常用数据结构series和方法 Pandas常用数据结构dataframe和方法 常用方法 数据清洗的常用工具--Pandas ...
- Python 3爬虫、数据清洗与可视化实战PDF高清完整版免费下载|百度云盘
百度云盘:Python 3爬虫.数据清洗与可视化实战PDF高清完整版免费下载 提取码: 内容简介 <Python 3爬虫.数据清洗与可视化实战>是一本通过实战教初学者学习采集数据.清洗和组 ...
随机推荐
- 解决Protege打开owl文件时程序卡死问题
Protege在打开本地owl文件时,程序卡死,而且在终端或是命令行中也没有报错.这是因为存放该本体的文件夹下面有很多其他的文件,只需要创建一个新的文件夹并把owl文件放入其中就可以解决该问题.
- Greenplum hostname和address不一致导致配置文件无法加载
最近又遇到了几个坑,逐一记录分析下. 1.主机名hostname和address不一致 在又一次部署压测环境交由测试组进行压测时,同事修改了pg_hba.conf文件重新加载配置文件时报错.(找不到l ...
- Django的安装和启动
花了将近半个月的时间终于完成了Django的初步学习,从安装到实践MVTC架构,再到写简易的model和view,踩过不少坑,因此这里分享出来,也算一个阶段性的总结. 1.安装Django pip i ...
- 你的MySQL服务器开启SSL了吗?SSL在https和MySQL中的原理思考
最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...
- Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
1 非抢占式和可抢占式内核 为了简化问题,我使用嵌入式实时系统uC/OS作为例子 首先要指出的是,uC/OS只有内核态,没有用户态,这和Linux不一样 多任务系统中, 内核负责管理各个任务, 或者说 ...
- 【Git学习二】深入了解git checkout命令
检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...
- C# -- 使用Aspose.Cells创建和读取Excel文件
使用Aspose.Cells创建和读取Excel文件 1. 创建Excel Aspose.Cells.License li = new Aspose.Cells.License(); li.SetLi ...
- puppet 横向扩展(二)
Table of Contents 1. 概述 2. 实验环境 3. 实验步骤 3.1. 机器B 的环境 3.1.1. 安装puppetmaster 以及 apache passenger 3.1.2 ...
- 自定义实现HashMap的put、get方法
public class HashMap{ public static void main(String[] args){ put("aa", "wo ai ni&quo ...
- spring的工厂类
主要介绍两种工厂接口BeanFactory(老版本,已过时)和ApplicationContext ApplicationContext接口:每次在加载applicationContext.xml的时 ...