ythonhadoop金融大数据分析析 怎么样

¥详询¥详询
上课(咨询)地址:北京海淀区东北旺南路29号首农蓝海中心
来魔据让你成为大数据稀缺人才
职业选择多达几十种
升职加薪so easy
薪资蹭蹭涨,从此爱上同学会
魔据就是大数据,懂企业,更懂你
16年500强大型项目研发,12年IT教学经验
上市企业,16年项目开发 经验,Oracle、华为、 山软件战略合作方,开发超 过100个大型商业项目。
30人大数据课程研发团队, 大数据课程标准制定者! 用研发实力征服高校,第 一批高校大数据专业技术 支撑。
12年IT教学经验 3年大数据教学积淀 累积毕业学员超2万
4大学习目标冲刺大数据项目经理
掌握Java高级语言技术
掌握数据结构与算法
掌握MYSQL数据库应用及开发
掌握SHELL脚本编程
精通主流大数据处理核心 技术
掌握Hadoop、Python、 Storm、Spark、Hive
机器学习算法库应用
实时分析计算框架,SPARK 技术
分布式爬虫与反爬虫技术
实时分析项目实战
机器学习算法项目实战
掌控大数据项目开发设计 思想
掌握大数据处理技术手段
解决项目开发中的问题和 技术难点
魔据教育大数据开发高薪就业班课程大纲
一阶段 基础课程(301课时)
课程内容详解
Java基础课程
java编程语言基础(35学时)
主要讲解java环境变量搭建,jvm虚拟机运行原理性能参数调整,java基本数据类型,流程控制,数组应用等。
java面向对象编程(70学时)
主要讲解java类和对象的概念,OOP面向对象编程思想,程序设计,构造方法,以及面向对象三大特性,类与类之间的关系,接口、抽象类final,static等关键字,以及多态,异常。
各种常用API(21学时)
主要讲解String以及StringBuffer等。
java集合框架(28学时)
主要讲解整个集合框架体系内容,ArrayList,LinkedList,HashMap等。
I/O流技术(14学时)
主要讲解I/O流基本知识,流操作的基本步骤,字节流,字符流,文件操作以及文件加密,解密,文件复制,文件拆分合并等相关知识,序列化和反序列化。
java线程以及锁(14学时)
主要讲解介绍java线程的基本操作和相关知识;了解锁和死锁的概念以及效果,如何建立生产消费者模型。
Socket网络编程和分布式基础原理(7学时)
主要讲解介绍java基于网络的一些操作和特性,以及各种协议。
关系型数据库MySql
Mysql数据库(35学时)
主要讲解SQL语句相关方面的知识,数据库的操作的基本流程,以及一些常见的企业开发中涉及到的业务方面的数据设计知识以及一些数据库设计工具的使用;基本SQL操作(增,删,改,查,函数,条件查询,排序,递归查询等操作),表和表之间的关系配置,以及一些常用的企业开发数据库设计技巧,如权限管理等表结构设计,视图,分区,索引。
JDBC(7学时)
主要讲解jdbc相关的知识,jdbc基本操作,预处理命令,批处理,jdbc缓存技术,以及jdbc封装思想和数据库连接池技术的开发和应用。
Web开发课程
Jsp/Servlet(35学时)
主要讲解一些简单的jsp和servlet应用, 保证学生能够使用基本的增删改查。
Linux操作系统
Linux简介(4学时)
主要了解什么是操作系统、什么是Linux;了解Linux之前,Unix的历史;了解GNU计划;Linux的发展以及Linux的各个发行版本。
Linux环境搭建(4学时)
主要讲解Linux安装流程;理解Linux部署;理解Linux基本操作命令。
Linux常用命令(12学时)
主要讲解磁盘操作命令;权限管理命令;文件查找命令;本机帮助命令;压缩解压命令;网络相关命令;系统相关命令;vi命令。
Linux基础(3学时)
主要讲解Linux系统监测相关命令;理解crontable的使用;掌握Linux软件包的使用。
Linux网络管理(2学时)
主要讲解Linux的网络配置;掌握互联网的寻址流程和原理;掌握如何经过Window远程管理Linux服务器;掌握如何构建FTP/SSH服务应用;掌握如何实现不同系统平台之间的文件共享。
Shell脚本(6学时)
主要讲解Shell脚本结构;掌握Shell变量定义;掌握Shell基本语法;掌握Shell调试。
综合应用实操(4学时)
主要知识点串线。
第二阶段 大数据基础课程(105课时)
课程内容详解
Hadoop课程
大数据的概述(7学时)
主要讲解大数据历史;大数据出现的原因;大数据解决的问题;大数据目前的发展状态;大数据未来的;我们生活中各行业的大数据应用;云计算的概念;选择hadoop的原因;hadoop在云计算中的作用;hadoop依赖的所有技术和之前课程的联系。
hadoop集群的搭建(17.5学时)
主要讲解介绍单机版和伪分布式安装,详细介绍每个方式的区别,解决什么问题以及详细的配置,并对每个配置文件做深入讲解。能够查看hadoop进程;理解hadoop启动的整个过程。
掌握hadoop集群的搭建、HA安装(ZK);介绍并带领学生使用hadoop的命令,操作hadoop集群文件的上传、下载、删除等操作;日志错误信息、常见的错误处理方式;zookeeper的介绍与安装。
HDFS基础概念介绍(7学时)
主要讲解块的概念、块的好处、冗余备份、块的切分;元数据概念;NameNode工作原理; DataNode工作原理;Secondary NameNode;客户端含义;HDFS文件操作过程;元数据的持久化;什么是EditsLog和FSImage静像文件;EditsLog和FSImage合并--Checkpoint机制;HDFS命名空间;安全模式;心跳机制;机架感知。
HDFS API案例(7学时)
主要讲解案例包括上传本地文件到HDFS;从HDFS下载文件到本地;创建HDFS文件;创建HDFS目录;重命名HDFS文件;删除HDFS文件;删除HDFS目录;查看某个文件是否存在;数据类型,writeable接口。
YARN资源调度框架介绍(7学时)
主要讲解客户端程序与ResourceManager交互;客户端存贮封装信息;ResourceManager调用NodeManager;NodeManager划分资源池;ResourceManager调用MapReduce程序;执行运算;hadoop伪分布式安装、HA安装,加入YARN的进程,反推理论;运行MR程序,观察YARN在程序运行中的处理过程;hadoop1.0到2.0的变化(新加)。
Mapreduce介绍(7学时)
主要讲解MapReduce产生背景;MapReduce官方解释;MapReduce特点;MapReduc计算流程:inputsplit、mapper、combine、shuffle、sort、reducer;MapReduce容错性;MapReduce推测机制;MapReduce应用场合以及MR的整个流程的图解。
Mapreduce案例(28学时)
主要讲解经典的MR程序,包括(计数器、InputFormat输入格式、OutputFormat输出格式、单词计数程序Combiner优化、去重编程、平均程序、数据排序、全排序、倒排序、二次排序、单表关联、多表关联、join连接);排序算法,归并排序,底层源码分析,分区算法;讲解job提交作业的流程;经过WebUI查看log日志。
(14课时)
Zookeeper介绍和安装(3学时)
主要讲解Zookeeper介绍;Zookeeper下载与安装;Zookeeper配置。
Zookeeper集群搭建(4学时)
主要讲解搭建Zookeeper集群;选举机制及Leader测试;Zookeeper客户端操作。
Zookeeper API客户端开发(7学时)
主要讲解Zookeeper客户端API调用;Zookeeper类、Stat类介绍;创建和删除路径Path;ACL理解;CreateMode:创建模式、VERSION版本;设置数据、获取children、Watch(观察者)。
第三阶段 分布式数据库课程(95课时)
课程内容详解
HBase简介(2学时)
主要讲解HBase概念;掌握HBase旧版本体系结构;掌握HBase工作原理;掌握HBase的组成;掌握HBase的容错性;理解HBase应用场景。
HBase环境搭建(9学时)
主要讲解HBase安装流程理论;理解HBase安装模式理论;掌握HBase安装及验证理论;理解HBase基本应用操作;了解查看HBase表内容的几种方式。
掌握HBase版本选择的依据;理解HBase本地模式安装过程;熟练HBase单机模式安装的相应命令;掌握Eclipse HBase开发环境搭建过程。
理解HBase伪分布式安装流程;掌握HBase分布式安装过程;掌握Zookeeper安装过程;初识HBase常用Shell命令;初识HBase API的调用过程。
HBase开发入门(7学时)
主要讲解HBase Shell常用基本命令;掌握HBase Shell常用表管理命令;掌握HBase Shell常用表操作命令;掌握HBase API常用表数据操作开发过程;掌握HBase API常用表管理操作开发过程;掌握新旧版本HBase API调用的差异。
HBase基础API(6学时)
主要讲解HBase基础API的内容及特点;理解HBase基础API开发流程;掌握HBase新、旧二个版本下Put与Delete;理解原子性操作概述;理解Get方法相关理论知识;掌握常规操作:单行get、Result类、get列表(ListCell、RawCell)、错误列表、获取数据方法;掌握多版本的写法。
HBase高级API(5学时)
主要讲解Scan方法相关理论知识;掌握常规操作:指定行、ResultScanner类、按RowKey范围取、多版本;掌握新、旧二种版本的写法;理解过滤器相关理论知识;掌握常规操作:行、列、列名、值、分页过滤器。
综合应用(6学时)
主要讲解表设计相关理论知识;掌握表中列族的设计; 掌握表中RowKey设计;理解翻页原理。
hive入门(7学时)
主要讲解Hive产生的原因;理解HQL解析成MapReduce原理的工作流程;理解Hive体系结构;理解Hive应用场景;初步理解Hive与传统数据仓库的异同。
掌握Hive启动过程、表内容查看几种方式;掌握基本Hive命令操作知识;初步理解Java经过JDBC调用Hive的过程。
Hive环境搭建(4学时)
主要讲解Hive安装前的准备工作;理解Hive内嵌、独立、远程三种安装模式;熟练掌握Hive远程安装过程。
Hive管理(6学时)
主要讲解HiveQL数据类型及转换机制;理解Hive文本文件数据编码格式;初步了解表存储格式;熟练掌握Hive建表操作方法
熟练Java经过JDBC调用Hive过程;了解Hive的几中服务:Hive Shell、JDBC/ODBC、Thrift服务、Web接口。
HiveQL基本语法(3学时)
主要讲解存储格式;掌握创建表的语法;掌握导入数据、删除表、修改表的操作。
HiveQL查询(10学时)
主要讲解使用正则表达式来指定列;掌握列值计算、算数运算符的使用方法;掌握函数、Limit语句的使用方法;熟练列别名、嵌套Select句式;熟练CASE-When-Then句式;When语句。
熟练Group By语句用法;熟练内连接、左外连接、右外连接、半连接的用法;理解Map连接的用法。
掌握Order By、Sort By、Distribute By、Cluster By用法;掌握Union All语法。
高级应用(7学时)
主要讲解分区的原理和用法;掌握分桶的原理和用法;掌握视图的原理和用法;掌握索引的原理和用法。
Hive函数(3学时)
主要讲解Hive函数应用原因;掌握调用函数的应用过程;掌握标准函数的应用过程;掌握聚合函数的应用过程;掌握表生成函数的应用过程。
Hive自定义函数(4学时)
主要讲解编写UDF的基本语法过程;掌握编写UDAF的基本语法过程。
综合应用(16学时)
主要考核HiveQL基本应用;考核分区、分桶、视图、索引应用;考核函数,尤其是自定义函数的应用。
第四阶段 大数据高级进阶课程(207课时)
课程内容详解
简介及安装(16学时)
主要讲解Python简介、Python开发环境搭建;Python数据类型和运算符;Python条件语句
基础语法(16学时)
主要讲解Python for循环、while循环;break与continue;字符串的使用、元组的定义及使用。
函数与面向对象(16学时)
主要讲解Python中列表、元组、字典;函数的定义及使用;lambda匿名函数及应用;变量的作用域;参数的传递、类的定义、对象创建;面向对象的封装、继承、多态。
模块与IO(16学时)
主要讲解模块概念;模块用法;导入模块;IO模块的使用;日历模块的使用;异常的概念及处理。
正则表达式(16学时)
主要讲解正则表达式概念及应用场景;search和match方法;正则表达式的修饰符;正则表达式的模式;正则表达式的应用。
爬虫之分布式爬虫(21学时)
主要讲解redis简介;安装测试;多机测试;scrapy_redis;简单应用测试;多机协作的redis。
爬虫之反爬虫(14学时)
主要讲解反爬虫介绍;问题的分类;顺从的艺术;反爬虫策略;爬虫编写注意事项。
spark基础(7学时)
主要讲解Spark 概述;Spark 生态系统;与MapReduce比较;体系结构与工作原理;安装部署及测试;spark应用场景。
RDD (21学时)
主要讲解Spark程序模型;Spark弹性数据集;RDD与共享式内存区别;Spark算子分类及功能;Spark 核心算子介绍:aggregate、aggregateByKey、cartesian。
Spark核心算子:coalesce, repartition,fullOuterJoin
、cogroup [Pair], groupWith [Pair]、combineByKey[Pair] ,count,countByKey [Pair]、countByValue,distinct,filter,filterWith &(deprecated)、flat Map,flatMapValues,flatMapWith,fold,foldByKey。
Spark核心算子:groupBy、groupByKey [Pair]、intersection、join [Pair]、keys [Pair]、values[Pair]、leftOuterJoin [Pair]、map、mapPartitions、mapPartitionsWithIndex、mapValues [Pair]、max、min、reduce、reduceByKey [Pair]、rightOuterJoin、sample、sortBy、sortByKey、sum 、take、top、zip、zipWithIndex;RDD特性、常见操作、缓存策略;RDD Dependency、Stage。
spark工作机制(7学时)
主要讲解Spark应用执行机制;Spark调度与任务分配模块;容错机制及共享变量和累加器;Lineage机制;Checkpoint机制;Shuffle机制;集成开发工具开发spark程序;web监控图讲解。
spark编程实战(7学时)
主要讲解编写wordcount程序;TopK;中位数;倒排索引;Countonce;倾斜连接等程序并经过web监控图进行查看。
spark SQL(7学时)
主要讲解Spark SQL概述;DataFrame及DataSet;SparkSession的使用;编程方式执行Spark SQL查询;sparkSQL 数据源之mysql;sparkSQL 数据源之hive;sparkSQL 数据源之json。
sparkSQL运行原理(7学时)
主要讲解Spark SQL组件、架构;DataFrame、SparkSQL运行原理;SparkSQL电商日常数据分析。
电商数据项目(14学时)
主要讲解python爬虫抓取数据;解析json数据;hive建表,数据填充;SparkSQL日常分析;数据的可视化展现。
SparkStreaming基础(7学时)
主要讲解Spark Streaming运行原理;DStream;DStream 常用函数;容错处理;与flume和kafka的集成。
SparkStreaming案例(百度统计的流式实事监控系统)(14学时)
主要讲解nginx日志文件,flume采集;kafka的应用;SparkStreaming 实时分析;结果写入Mysql数据库。
Spark MLlib(7学时)
主要讲解机器学习基本认识;分类算法、聚类算法;回归算法、决策树和随机森林;K近邻算法;贝叶斯决策论;EM算法。
综合应用(4学时)
主要对重要知识点串线。
实时计算介绍和Flume基础(1.5学时)
主要介绍实时计算与离线计算区别;实时技术应用;实时分析三种框架比较;实时分析技术架构。
Flume安装和相关概念(2学时)
主要讲解Flume安装,event介绍; Flume Agent内部原理; 配置Flume Agent。
source相关配置及测试 (3.5学时)
主要讲解source的生命周期;source的配置;常用的几种source的介绍以及应用;Flume拦截器。
channel相关配置及测试 (1.5学时)
主要讲解channle作用;channle事务性;channle的种类;channle配置;Channel选择器。
sink相关配置及测试(1.5学时)
主要讲解sink作用;sink的生命周期;常用的几个sink介绍;Sink组。
复杂数据流的应用(4学时)
主要讲解多source--单channle(Fan in flow); 单source--多channle(Fan out flow);agent—agent。
Kafka介绍(2学时)
主要讲解数据的传递方式;消息中间件的优势及作用;常用的消息中间件;kafka的相关概念。
Kafka安装(5学时)
主要讲解kafka相关概念:broker、topic、生产者和消费者;kafka集群类型;kafka集群启动步骤。
Kafka生产者和消费者(7学时)
主要讲解kafka分区机制(Partition); kafka的副本数(replication);Kafka生产者API和Kafka消费者API。
flume与kafka整合(7学时)
主要讲解flume与kafka整合:kafka source、Kafka Sink、Kafka Channel。
第五阶段 大数据综合实战项目课程(课时)
项目内容详解
高校学生大数据分析项目(学时)
高校学生大数据分析系统是依托于高校数据管理平台的高校学生行为分析系统。经过对海量学生行为数据的计算和分析,建设高校完整的高校招生、教学、就业、学生学习、生活、心理的完整数据仓库。经过对这些数据的分析,提升学校对学生的管理和服务,教学资源合理分配,招生就业等各方面的精细化服务程度,达到学生和教学管理工作的前瞻性、精准性和持续性要求。
互联网精准营销大数据分析项目(学时)
电信预购分析系统是依托于电信用户上网行为数据进行预购分析的系统。经过对电信用户的海量上网行为数据的匹配与分析,建立用户的精准画像,及购买行为预测。经过这些数据的分析,提升对用户的掌握,合理推荐业务提高电信业务扩展。经过预购分析对外提供精准营销的预测用户,有效提高营销成功率。
精准画像对用户进行全面的分析,主要方面:用户状况,用户分群,用户偏好等。经过分析掌握用户状况对业务超包及时提醒升档,对不同时间段提供闲忙不同业务。经过分群划分相同用户,对不同群组进行差别推荐。经过偏好推荐定制服务(游戏包,阅读包等)。经过更人性化的推荐,进而提升业务发展。
预购分析:对用户购买欲望、购买偏好等进行数据建模分析。经过基础分析及模型算法分析用户预购类别(购房,购车等),预购类型(购房:大户型,小户型,房屋位置等。购车:轿车,SUV,价格区间等。)。分析用户购买欲望是否强烈,是近期购买还是先期了解等。
目标,建立良好的用户画像综合体系,准确描绘用户行为。经过数据分析对内提高公司总体业绩;对外提供优质服务。
选择的人多自然是好机构
上一个课程:
下一个课程:
联系电话:
所在区域:
学习内容:
我们将对您的信息严格保密!
他们都在学
热门培训专业
人气学校推荐
最新教育资讯
[][][][][][][]
[][][][][][][]
[][][][][][][]
[][][][][]855被浏览154,027分享邀请回答1477 条评论分享收藏感谢收起992 条评论分享收藏感谢收起10876人阅读
Python(51)
量化投资(50)
Python的功能不可以说不大,在金融数据分析里面有着很方便的应用。
1.数据获取
pandas包中有自带的数据获取接口,详细的大家可以去其官网上找,是io.data下的DataReader方法。
import numpy as np
import pandas as pd
import pandas.io.data as web
import math
#从雅虎财经获取DAX指数的数据
DAX = web.DataReader(name='^GDAXI', data_source='yahoo',start = '')
#查看一下数据的一些信息 上面这一方法返回的是一个pandas dataframe的数据结构
print DAX.info()
#绘制收盘价的曲线
DAX['Close'].plot(figsize=(8,5))
我们获得的数据是dataframe的结构,毕竟是pandas的接口的嘛。然后我们绘制一下收盘价曲线。
这个是我们获取的数据的信息。
绘制出来的收盘价曲线是这样的。
2.简单的数据处理
有了股票价格,我们就计算一下每天的涨跌幅度,换句话说,就是每天的收益率,以及股价的移动平均和股价的波动率。
#计算每日的涨跌幅
DAX['Return'] = np.log(DAX['Close']/DAX['Close'].shift(1))
print DAX[['Close','Return']].tail()
#将收盘价与每日涨跌幅度放在一张图上
DAX[['Close','Return']].plot(subplots = True,style = 'b',figsize=(8,5))
#42与252个交易日为窗口取移动平均
DAX['42d']=pd.rolling_mean(DAX['Close'],window=42)
DAX['252d']=pd.rolling_mean(DAX['Close'],window=252)
#绘制MA与收盘价
DAX[['Close','42d','252d']].plot(figsize=(8,5))
#计算波动率,然后根据均方根法则进行年化
DAX['Mov_Vol']=pd.rolling_std(DAX['Return'],window = 252)*math.sqrt(252)
DAX[['Close','Mov_Vol','Return']].plot(subplots = True, style = 'b',figsize = (8,7))
我们可以掌握这种subplots的绘图方法,把几张趋势图片放在一起。
这是移动平均线的图片,subplots的属性为false,那么就是叠加在一起绘制。
这是市场的波动率和股市的关系。和FRM中提到的一样,在市场低迷,或者说,金融危机的时候,市场的波动率急剧增加。于是,就有了恐慌指数这个东西,也就是Vix,其实就是市场的波动率指数。
个人微信号:luxiaoran0178
量化知乎专栏:https://zhuanlan.zhihu.com/lyx-quant
个人运营公众号:请搜索:tebs
阅读:38469
阅读:17701
阅读:5788
阅读:21599
文章:15篇
阅读:9813>>ython Pandas处理亿级数据
用Python Pandas处理亿级数据
作者: afenxi来源: afenxi时间: 19:55:17
在数据分析领域,最热门的莫过于Python和R语言,此前有一篇文章《别老扯什么Hadoop了,你的数据根本不够大》指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择。这次拿到近亿条日志数据,千万级数据已经是关系型数据库的查询分析瓶颈,之前使用过Hadoop对大量文本进行分类,这次决定采用Python来处理数据:
CPU:3.5 GHz Intel Core i7 内存:32 GB HDDR 3 1600 MHz 硬盘:3 TB Fusion Drive
数据分析工具
Python:2.7.6 Pandas:0.15.0 IPython notebook:2.0.0
源数据如下表所示:
Table Size Desc ServiceLogs 98,706,832 rows x 14 columns 8.77 GB 交易日志数据,每个交易会话可以有多条交易 ServiceCodes 286 rows & 8 columns 20 KB 交易分类的字典表
启动IPython notebook,加载pylab环境:
1 ipython notebook --pylab=inline
Pandas提供了IO工具可以将大文件分块读取,测试了一下性能,完整加载9800万条数据也只需要263秒左右,还是相当不错了。
1 2 3 4 5 6 import pandas as pd reader = pd.read_csv(data/servicelogs, iterator=True) try: &&&&df = reader.get_chunk() except StopIteration: &&&&print &Iteration is stopped.& 1百万条 1千万条 1亿条 ServiceLogs 1 s 17 s 263 s
使用不同分块大小来读取再调用 pandas.concat 连接DataFrame,chunkSize设置在1000万条左右速度优化比较明显。
1 2 3 4 5 6 7 8 9 10 11 loop = True chunkSize = 100000 chunks = [] while loop: &&&&try: &&&&&&&&chunk = reader.get_chunk(chunkSize) &&&&&&&&chunks.append(chunk) &&&&except StopIteration: &&&&&&&&loop = False &&&&&&&&print &Iteration is stopped.& df = pd.concat(chunks, ignore_index=True)
下面是统计数据,Read Time是数据读取时间,Total Time是读取和Pandas进行concat操作的时间,根据数据总量来看,对5~50个DataFrame对象进行合并,性能表现比较好。
Chunk Size Read Time (s) Total Time (s) Performance 100,000 224..,000 232..,000,000 213..934142 &&& 2,000,000 208..006299 &&&&& 5,000,000 209..939319 &&&&& 10,000,000 207..135672 &&&&&&& 20,000,000 209..775713 &&&&& 50,000,000 222..,000,000 263..574246
如果使用Spark提供的Python Shell,同样编写Pandas加载数据,时间会短25秒左右,看来Spark对Python的内存使用都有优化。
Pandas提供了 DataFrame.describe 方法查看数据摘要,包括数据查看(默认共输出首尾60行数据)和行列统计。由于源数据通常包含一些空值甚至空列,会影响数据分析的时间和效率,在预览了数据摘要后,需要对这些无效数据进行处理。
首先调用 DataFrame.isnull() 方法查看数据表中哪些为空值,与它相反的方法是 DataFrame.notnull() ,Pandas会将表中所有数据进行null计算,以True/False作为结果进行填充,如下图所示:
Pandas的非空计算速度很快,9800万数据也只需要28.7秒。得到初步信息之后,可以对表中空列进行移除操作。尝试了按列名依次计算获取非空列,和 DataFrame.dropna() 两种方式,时间分别为367.0秒和345.3秒,但检查时发现 dropna() 之后所有的行都没有了,查了Pandas手册,原来不加参数的情况下, dropna() 会移除所有包含空值的行。如果只想移除全部为空值的列,需要加上 axis 和 how 两个参数:
1 df.dropna(axis=1, how=all)
共移除了14列中的6列,时间也只消耗了85.9秒。
接下来是处理剩余行中的空值,经过测试,在 DataFrame.replace() 中使用空字符串,要比默认的空值NaN节省一些空间;但对整个CSV文件来说,空列只是多存了一个&,&,所以移除的9800万 x 6列也只省下了200M的空间。进一步的数据清洗还是在移除无用数据和合并上。
对数据列的丢弃,除无效值和需求规定之外,一些表自身的冗余列也需要在这个环节清理,比如说表中的流水号是某两个字段拼接、类型描述等,通过对这些数据的丢弃,新的数据文件大小为4.73GB,足足减少了4.04G!
使用 DataFrame.dtypes 可以查看每列的数据类型,Pandas默认可以读出int和float64,其它的都处理为object,需要转换格式的一般为日期时间。DataFrame.astype() 方法可对整个DataFrame或某一列进行数据格式转换,支持Python和NumPy的数据类型。
1 df[Name] = df[Name].astype(np.datetime64)
对数据聚合,我测试了 DataFrame.groupby 和 DataFrame.pivot_table 以及 pandas.merge ,groupby 9800万行 x 3列的时间为99秒,连接表为26秒,生成透视表的速度更快,仅需5秒。
1 2 3 df.groupby([NO,TIME,SVID]).count() # 分组 fullData = pd.merge(df, trancodeData)[[NO,SVID,TIME,CLASS,TYPE]] # 连接 actions = fullData.pivot_table(SVID, columns=TYPE, aggfunc=count) # 透视表
根据透视表生成的交易/查询比例饼图:
将日志时间加入透视表并输出每天的交易/查询比例图:
1 2 total_actions = fullData.pivot_table(SVID, index=TIME, columns=TYPE, aggfunc=count) total_actions.plot(subplots=False, figsize=(18,6), kind=area)
除此之外,Pandas提供的DataFrame查询统计功能速度表现也非常优秀,7秒以内就可以查询生成所有类型为交易的数据子表:
1 tranData = fullData[fullData[Type] == Transaction]
该子表的大小为 [ rows x 5 columns]。在此已经完成了数据处理的一些基本场景。实验结果足以说明,在非&&5TB&数据的情况下,Python的表现已经能让擅长使用统计分析语言的数据分析师游刃有余。
作者:[email&protected]_
来源:http://www.justinablog.com/archives/1357
原创文章,作者:数据特工,如若转载,请注明出处:《用Python Pandas处理亿级数据》http://www.afenxi.com/post/6785
看过还想看
可能还想看
Yonghong的价值观:以卓越的数据技术为客户创造价值,实现客户成功。
友情链接:
Copyright (C)
北京永洪商智科技有限公司 京ICP备号 京公网安备451号
(友链联系:)

我要回帖

更多关于 金融行业大数据分析 的文章

 

随机推荐