pandas数据分析
本篇主要介绍如何用pandas来分析一份刚拿到的数据集,即做数据挖掘或清洗的工作。
这里以贷款申请预测的数据来作为例子
一、查看基本信息
拿到数据首先看看大致结构,查看行列数,dataframe数据结构的通用信息,和基本数据类型信息
方法:pandas.head(), pd.info(), pd.shape

这里特征太多,只做了统计,如果特征量不多一般是列表,会对每一项标出诸如bool,int64,float64和object的数据的类型特征,最后会统计各个类型特征有几个。同样地,我们还可以很容易地查看数据中是否存在缺失值。
二、初步删除大缺失值的项,重复样本
缺失值一般从列看,如果某一个特征缺失值过多,那么也没有多大的作用了,可以删除,比如缺失值过半。从横向看,然后是某些样本是重复的,应该删除重复项。

可见我们的数据特征项缺失很严重,样本没有重复。 dropna()中shresh的意思时样本中某一列的缺失值要达到thresh值才删除该列。
三、确定label
有时候,数据不一定会有明显的label,需要自己处理,比如这里,我们没有哪一项是明确的到底给某个样本是贷款还是没贷款。根据我们的项目,有一项可以作为label,不过还需要先处理一下。

可见我们的label把贷款取为1,没贷款取为0. 且样本不均衡,这是后面考虑的问题,这里不作讨论
四、根据不同项目,决定删除无用的特征
1、pd.columns可以查看所有特征项名

2、还有一种情况是某个特征一直是一个值,比如如果统计中国人身高,出现国籍一栏,那肯定都是中国,对结果没有什么参考价值,这种情况也应该删除

五、开始对每一个特征项进行处理
1、比如根据缺失值的多少来选择不同的应对方式,填充还是删除。如果缺失值相对总样本来说比较小可以直接删除这些样本行或者填充。如果构成一定的比例,可以直接填充为某一个值,当做该特征的一个值。
  

2、计算机只认识数值型特征,对于非数值型特征(object,bool),需要转化为数值型特征。可以用loan.dtypes.value_counts()查看有多少种数据类型,可以用loan.info()来看具体每一项特征的数据类型,可以看到还可以看到数据是否有缺失。

列出所有object类型,并查看数据

3、接下来对每一个object类型数据分别转换为数值型。可以自己命名,也可以用one-hot encoding 编码。什么时候用one-hot encoding呢,如果某个非数值型特征本身不存在大小之分,自己转换为数值后,计算机分析时默认会以大小来衡量,这样是不妥的。比如有三种颜色,红绿蓝,如果用数字1/2/3来表示,有大小之分就不合适,适合用独热编码来处理。比如下面的年龄,本来就有大小之分。

4、我们用astype()方法来改变数据的列类型,如上。应用这种方法,我们也可以直接将bool数据类型转化为int64类型:(我们数据里没有bool类型数据)
df['Churn'] = df['Churn'].astype('int64') # 假设Churn为bool特征
5、至此,我们已经将所有数据转换为数值型,可以用describe()方法用来描述每个数字特征(int64和float64类型)的基本统计信息:包括非缺失值的数量,均值,标准差,范围,中位数,0.25和0.75四分位数。

六、排序
DataFrame数据结构可以对一个特定变量的值(如列)进行排序。例如,我们可以按某一列排序(设置参数ascending= False,按降序排序),我们还可以对多列进行排序:

七、时间序列
pandas可以直接,时间数值转换为标准的datetime时间格式,然后可以对时间序列做相应的操作。这里以纽约州某一个区的不同时间用电量统计来举例。
一开始我们的时间表示是这样的,而且它是一个str类型

pandas.to_datetime()可以直接把时间数值转换为标准的datetime时间格式,注意转换时,加上format格式说明,如果数据量很大可以节省很多时间。

接下来就可用> 、< 或 == 来选择数据某几行数据了,也可以按时间排序。


把timestamp设为index, 可以很方便做数据索引,选取以及子集构造


这里我们可以借机看看iloc和loc的区别,如果dataframe有给定index,对于loc必须要以index名称索引,而,iloc任何时候都可以用数字索引,如df.iloc[0] 。

pandas数据分析的更多相关文章
- 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题
		
动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...
 - python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)
		
//2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...
 - pyhton pandas数据分析基础入门(一文看懂pandas)
		
//2019.07.17 pyhton中pandas数据分析基础入门(一文看懂pandas), 教你迅速入门pandas数据分析模块(后面附有入门完整代码,可以直接拷贝运行,含有详细的代码注释,可以轻 ...
 - pyhton中pandas数据分析模块快速入门(非常容易懂)
		
//2019.07.16python中pandas模块应用1.pandas是python进行数据分析的数据分析库,它提供了对于大量数据进行分析的函数库和各种方法,它的官网是http://pandas. ...
 - Pandas数据分析python环境说明文档
		
1. 要求windows系统 2. pycharm编程环境并要求配置好python3.x环境 pycharm可在官网下载,下面是链接. https://www.jetbrains.com/zh/pyc ...
 - PANDAS 数据分析初学者教程
		
Pandas 初学者教程 2018-05-19 六尺巷人 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包.它不仅提供了很多方法,使得数据处理非常 ...
 - pandas数据分析案例
		
1.数据分析步骤 ''' 数据分析步骤: 1.先加载数据 pandas.read_cvs("path") 2.查看数据详情 df.info() ,df.describe() ,df ...
 - pandas数据分析小知识点(一)
		
最近工作上,小爬经常需要用python做一些关于excel数据分析的事情,显然,从性能和拓展性的角度出发,使用pandas.numpy是比vba更好的选择.因为pandas能提供诸如SQL的很多查找. ...
 - (数据科学学习手札72)用pdpipe搭建pandas数据分析流水线
		
1 简介 在数据分析任务中,从原始数据读入,到最后分析结果出炉,中间绝大部分时间都是在对数据进行一步又一步的加工规整,以流水线(pipeline)的方式完成此过程更有利于梳理分析脉络,也更有利于查错改 ...
 - Pandas 数据分析——超好用的 Groupby 详解
		
在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别.年龄) ...
 
随机推荐
- 3D UI场景中,把XY平面的尺寸映射为屏幕像素的数学模型推导
			
概述及目录(版权所有,请勿转载,欢迎读者提出错误) 之前用kanzi的3D UI引擎和cocos-2d的时候都有遇到过这个问题,就如何把3D场景中的XY平面的尺寸映射为与屏幕像素一一对应的,即XY平面 ...
 - hdu1081 To The Max                                                                                            2016-09-11 10:06             29人阅读              评论(0)              收藏
			
To The Max Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
 - Hibernate 的复杂用法HibernateCallback
			
HibernateTemplate还提供了一种更加灵活的方式来操作数据库,通过这种方式可以完全使用Hibernate的操作方式.HibernateTemplate的灵活访问方式可通过如下两个方法完成: ...
 - java实现自动生成四则运算
			
Github项目链接:https://github.com/shoulder01/Fouroperation.git 一.项目相关要求 1. 使用 -n 参数控制生成题目的个数(实现) 2.使用 -r ...
 - Asp.net Core2.0, 基于 claims 实现权限验证
			
https://www.cnblogs.com/KimmyLee/p/6430474.html
 - .NET 4中的多线程编程之一:使用Task(转载)
			
原文地址:http://www.cnblogs.com/yinzixin/archive/2011/11/04/2235233.html .NET 4为了简化多线程编程,提供了System.Threa ...
 - python 实现九型人格测试小程序
			
用python实现九型人格测试,并把测试结果绘制成饼图,实现代码如下: # @Description: 九型人格 import xlrd, matplotlib.pyplot as plt data ...
 - JS下对日期进行比较
			
20181019更新一个获取指定日期的function //获取指定日期 function getBeforeDate(n) { var n = n; var d = new Date(); var ...
 - Python关于PIL库的学习总结与成果展示
			
一.关于PIL库的学习总结 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装.安装PIL库的方法如下,需要注意,安装库的名字是pillow. : ...
 - day57作业(包含data内容)
			
day57作业 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&quo ...