Python进行数据提取的方法总结


Posted in Python onAugust 22, 2016

准备工作

首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。

import numpy as np
import pandas as pd
loandata=pd.DataFrame(pd.read_excel('loan_data.xlsx'))

Python进行数据提取的方法总结

设置索引字段

在开始提取数据前,先将member_id列设置为索引字段。然后开始提取数据。

Loandata = loandata.set_index('member_id')

Python进行数据提取的方法总结

按行提取信息

第一步是按行提取数据,例如提取某个用户的信息。下面使用ix函数对member_id为1303503的用户信息进行了提取。

loandata.ix[1303503]

Python进行数据提取的方法总结

按列提取信息

第二步是按列提取数据,例如提取用户工作年限列的所有信息,下面是具体的代码和提取结果,显示了所有用户的工作年龄信息。

loandata.ix[:,'emp_length']

Python进行数据提取的方法总结

按行与列提取信息

第三步是按行和列提取信息,把前面两部的查询条件放在一起,查询特定用户的特定信息,下面是查询member_id为1303503的用户的emp_length信息。

loandata.ix[1303503,'emp_length']

Python进行数据提取的方法总结

在前面的基础上继续增加条件,增加一行同时查询两个特定用户的贷款金额信息。具体代码和查询结果如下。结果中分别列出了两个用户的代码金额。

loandata.ix[[1303503,1298717],'loan_amnt']

Python进行数据提取的方法总结

在前面的代码后增加sum函数,对结果进行求和,同样是查询两个特定用户的贷款进行,下面的结果中直接给出了贷款金额的汇总值。

loandata.ix[[1303503,1298717],'loan_amnt'].sum()

Python进行数据提取的方法总结

除了增加行的查询条件以外,还可以增加列的查询条件,下面的代码中查询了一个特定用户的贷款金额和年收入情况,结果中分别显示了这两个字段的结果。

loandata.ix[1303503,['loan_amnt','annual_inc']]

Python进行数据提取的方法总结

多个列的查询也可以进行求和计算,在前面的代码后增加sum函数,对这个用户的贷款金额和年收入两个字段求和,并显示出结果。

loandata.ix[1303503,['loan_amnt','annual_inc']].sum()

Python进行数据提取的方法总结

提取特定日期的信息

数据提取中还有一种很常见的需求就是按日期维度对数据进行汇总和提取,如按月,季度的汇总数据提取和按特定时间段的数据提取等等。

设置索引字段

首先将索引字段改为数据表中的日期字段,这里将issue_d设置为数据表的索引字段。按日期进行查询和数据提取。

loandata = loandata.set_index('issue_d')

Python进行数据提取的方法总结

按日期提取信息

下面的代码查询了所有2016年的数据。

loandata['2016']

Python进行数据提取的方法总结

在前面代码的基础上增加月份,查询所有2016年3月的数据。

loandata['2016-03']

Python进行数据提取的方法总结

继续在前面代码的基础上增加日期,查询所有2016年6月16日的数据。

loandata['2016-06-16']

Python进行数据提取的方法总结

除了按单独日期查询以外,还可以按日期段进行数据查询,下面的代码中查询了所有2016年1月至5月的数据。下面显示了具体的查询结果,可以发现数据的日期都是在1-5月的,但是按日期维度显示的,这就需要我们对数据按月进行汇总。

loandata['2016-01':'2016-05']

Python进行数据提取的方法总结

按日期汇总信息

Pandas中的resample函数可以完成日期的聚合工作,包括按小时维度,日期维度,月维度,季度及年的维度等等。下面我们分别说明。首先是按周的维度对前面数据表的数据进行求和。下面的代码中W表示聚合方式是按周,how表示数据的计算方式,默认是计算平均值,这里设置为sum,进行求和计算。

loandata.resample('W',how=sum).head(10)

Python进行数据提取的方法总结

将W改为M,数据变成了按月聚合的方式。计算方式依然是求和。这里需要说明的是resample函数会显示出所有连续的时间段,例如前面按周的聚合操作会显示连续的周日期,这里的按月操作则会在结果中显示连续的月,如果某个时间段没有数据,会以NaN值显示。

loandata.resample('M',how=sum)

Python进行数据提取的方法总结

将前面代码中的M改为Q,则为按季度对数据进行聚合,计算方式依然为求和。从下面的数据表中看,日期显示的都是每个季度的最后一天,如果希望以每个季度的第一天显示,可以改为QS。

loandata.resample('Q',how=sum)

Python进行数据提取的方法总结

将前面代码中的Q改为A,就是按年对数据进行聚合,计算方式依然为求和。

loandata.resample('A',how=sum)

Python进行数据提取的方法总结

前面的方法都是对整个数据表进行聚合和求和操作,如果只需要对某一个字段的值进行聚合和求和,可以在数据表后增加列的名称。下面是将贷款金额字段按月聚合后求和,并用0填充空值。

loandata['loan_amnt'].resample('M',how=sum).fillna(0)

Python进行数据提取的方法总结

在前面代码的基础上再增加一个数值字段,并且在后面的计算方式中增加len用来计数。在下面的结果中分别对贷款金额和利息收入按月聚合,并进行求和和计数计算

loandata[['loan_amnt','total_rec_int']].resample('M',how=[len,sum])

Python进行数据提取的方法总结

有时我们需要只对某一时间段的数据进行聚合和计算,下面的代码中对2016年1月至5月的数据按月进行了聚合,并计算求和。用0填充空值。

loandata['2016-01':'2016-05'].resample('M',how=sum).fillna(0)

Python进行数据提取的方法总结

或者只对某些符合条件的数据进行聚合和计算。下面的代码中对于贷款金额大于5000的按月进行聚合,并计算求和。空值以0进行填充。

loandata[loandata['loan_amnt']>5000].resample('M',how=sum).fillna(0)

Python进行数据提取的方法总结

除了按周,月,季度和年以外,resample函数还可以按以下方式对日期进行聚合。

下面给出了具体的对应表和说明。

 Python进行数据提取的方法总结

总结

以上就是利用python按特定的维度或条件对数据进行提取的全部内容,希望本文的内容对大家学习使用Python能有所帮助。

Python 相关文章推荐
Python urls.py的三种配置写法实例详解
Apr 28 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 Python
安装pytorch时报sslerror错误的解决方案
May 17 Python
分享Python获取本机IP地址的几种方法
Mar 17 Python
详解Python实现按任意键继续/退出的功能
Aug 19 #Python
利用Python开发微信支付的注意事项
Aug 19 #Python
Python用模块pytz来转换时区
Aug 19 #Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 #Python
利用Python爬取可用的代理IP
Aug 18 #Python
总结用Pdb库调试Python的方式及常用的命令
Aug 18 #Python
Python实现命令行通讯录实例教程
Aug 18 #Python
You might like
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
js中作用域的实例解析
2017/03/16 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
Python创建系统目录的方法
2015/03/11 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
python实现文本界面网络聊天室
2018/12/12 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
即将毕业大学生自荐信
2014/01/24 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
运动会主持人开幕词
2016/03/04 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
python playwright之元素定位示例详解
2022/07/23 Python