本篇主要介绍如何用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数据分析的更多相关文章

  1. 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

    动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...

  2. python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)

    //2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...

  3. pyhton pandas数据分析基础入门(一文看懂pandas)

    //2019.07.17 pyhton中pandas数据分析基础入门(一文看懂pandas), 教你迅速入门pandas数据分析模块(后面附有入门完整代码,可以直接拷贝运行,含有详细的代码注释,可以轻 ...

  4. pyhton中pandas数据分析模块快速入门(非常容易懂)

    //2019.07.16python中pandas模块应用1.pandas是python进行数据分析的数据分析库,它提供了对于大量数据进行分析的函数库和各种方法,它的官网是http://pandas. ...

  5. Pandas数据分析python环境说明文档

    1. 要求windows系统 2. pycharm编程环境并要求配置好python3.x环境 pycharm可在官网下载,下面是链接. https://www.jetbrains.com/zh/pyc ...

  6. PANDAS 数据分析初学者教程

    Pandas 初学者教程       2018-05-19 六尺巷人 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包.它不仅提供了很多方法,使得数据处理非常 ...

  7. pandas数据分析案例

    1.数据分析步骤 ''' 数据分析步骤: 1.先加载数据 pandas.read_cvs("path") 2.查看数据详情 df.info() ,df.describe() ,df ...

  8. pandas数据分析小知识点(一)

    最近工作上,小爬经常需要用python做一些关于excel数据分析的事情,显然,从性能和拓展性的角度出发,使用pandas.numpy是比vba更好的选择.因为pandas能提供诸如SQL的很多查找. ...

  9. (数据科学学习手札72)用pdpipe搭建pandas数据分析流水线

    1 简介 在数据分析任务中,从原始数据读入,到最后分析结果出炉,中间绝大部分时间都是在对数据进行一步又一步的加工规整,以流水线(pipeline)的方式完成此过程更有利于梳理分析脉络,也更有利于查错改 ...

  10. Pandas 数据分析——超好用的 Groupby 详解

    在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别.年龄) ...

随机推荐

  1. (并查集 贪心思想)Supermarket -- POJ --1456

    链接: http://poj.org/problem?id=1456 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#probl ...

  2. express4.X 笔记

    express是node的web框架,更新频繁,3.X到4.X有了很大的改变.网上的例子,各种版本的都有,为了以后方便,现在重新认真看一遍4.X的API,统一以后的使用方法.在J2EE上落后了,在ex ...

  3. Hibernate和spring中的session总结

    1.this.getSession() 是org.springframework.orm.hibernate3.support.HibernateDaoSupport 中的一个方法,它可以从当前事务或 ...

  4. dubbo 源码编译记录

    DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,阿里内部采用sofa框架,同属于分布式RPC框架,dubbo开源,而sofa ...

  5. Asp.net Core2.0, 基于 claims 实现权限验证

    https://www.cnblogs.com/KimmyLee/p/6430474.html

  6. Vue2.5 Web App 项目搭建 (TypeScript版)

    参考了几位同行的Blogs和StackOverflow上的许多问答,在原来的ng1加TypeScript以及Webpack的经验基础上,搭建了该项目,核心文件如下,供需要的人参考. package.j ...

  7. Sublime Text 3 格式化HTML CSS JS 代码

    一,首先通过ctrl+shift+p 要等一会就会出现插件安装界面 二,在插件安装输入框,输入:HTML-CSS-JS Prettify  并安装该插件 三,如果没有装nodejs, 下载nodejs ...

  8. [ACM_动态规划] hdu1003 Max Sum [最大连续子串和]

    Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum ...

  9. C# 代码风格要求

    一个.cs源文件至多定义两个类型 所有命名空间.类型名称使用Pascal风格(单词首字母大写),私有方法.受保护方法,仍使用Pascal风格命名 本地变量.方法参数名称使用Camel风格(首字母小写, ...

  10. ASP.NET Core学习总结(1)

    经过那么长时间的学习,终于想给自己这段时间的学习工作做个总结了.记得刚开始学习的时候,什么资料都没有,光就啃文档.不过,值得庆幸的是,自己总算还有一些Web开发的基础.至少ASP.NET的WebFor ...