关键词:
Pandas系列之入门篇
简介
pandas 是 python用来数据清洗、分析的包,可以使用类sql的语法方便的进行数据关联、查询,属于内存计算范畴,
效率远远高于硬盘计算的数据库存储。另外pandas还提供了大数据存储的API——HDFStore,来对接HDF5。
安装
pandas 利用豆瓣源,速度快
pip install pandas numpy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pytables
pip install tables
hdf5
Download: https://www.hdfgroup.org/downloads/hdf5/source-code/
./configure
make
make check
make install
使用案例
上网流量数据:源数据以CSV文件实时生成,通过监听文件的方式做到一旦有新的CSV生成就进入数据处理流程。
总的流程大致分5部,分别是:读取CSV、数据清洗、数据分析、数据统计、存储HDF5。
关于下面用到的一些字段的解释说明:
user: 用户
tm_type: 终端类型
serv: 一级app分类
app: 二级app分类
record_time: 记录产生的时间
up_flux: 上行流量
down_flux: 下行流量
pandas api document: https://pandas.pydata.org/pandas-docs/stable/api.html?highlight=hdfstore
读取CSV
filename_src = ‘xxx.csv‘
col_list = [‘user‘, ‘tm_type‘, ‘serv‘, ‘app‘, ‘record_time‘, ‘up_flux‘, ‘down_flux‘]
# x01表示空格 16进制
df_flux = pd.read_csv(filename_src, sep=‘x01‘, error_bad_lines=False, index_col=False, usecols=[3, 10, 11, 12, 15, 16, 17], names=col_list)
数据清洗
"""
data clean
"""
# remove null data
df_flux.dropna(inplace=True)
# remove duplicates
df_flux.drop_duplicates(inplace=True)
数据分析
"""
data analysis
inner join v_student_net(inner join)
refer column: user
"""
conn = MySQLdb.connect(host, user, passwd, database, charset=‘utf8‘)
cur = conn.cursor()
sql = ‘select outid, username from v_student_net‘
cur.execute(sql)
results = cur.fetchall()
df_student_net = pd.DataFrame(list(results), columns=[‘outid‘, ‘user‘])
# inner join df_flux, v_student_net
df_flux = pd.merge(df_flux, df_student_net, on=‘user‘)
数据统计
"""
data statistics
group by: record_date, outid, serv, app
aggregate by: up_flux, down_flux
sort by: down_flux with desc
"""
# as_index=False,default True
grouped = df_flux.groupby([‘record_date‘, ‘outid‘, ‘serv‘, ‘app‘], as_index=False)
df_flux = grouped.agg({‘up_flux‘: ‘sum‘, ‘down_flux‘: ‘sum‘}).sort_values(‘down_flux‘, ascending=False)
存储HDF5
"""
store in hdf5
"""
hdf5_filepath = ‘xxx.h5‘
store = pd.HDFStore(hdf5_filepath, complevel=1, complib=‘bzip2‘)
store.put(‘flux‘, df_flux, format=‘table‘, append=True, data_columns=True)
总结
从上面的例子可以看到,pandas处理数据是相当的简洁明了,存储hdf5更是两句话就搞定。当然这里面会有相当多注意的细节,稍有不慎就会导致意想不到的结果,我将会在下一篇介绍。
要学好pandas,api文档必须要精通!
pandas高级数据分析快速入门之二——基础篇(代码片段)
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——统计分析篇Pandas高级数据分析快速入门之四——表内、表间数据处理篇Pandas高级数据分析快速入... 查看详情
pandas高级数据分析快速入门之五——机器学习特征工程篇(代码片段)
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇Pandas高级数据分析快速入门之四——数据可视化篇Pandas高级数据分析快速... 查看详情
pandas高级数据分析快速入门之五——机器学习特征工程篇(代码片段)
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇Pandas高级数据分析快速入门之四——数据可视化篇Pandas高级数据分析快速... 查看详情
pandas高级数据分析快速入门之四——数据可视化篇(代码片段)
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇Pandas高级数据分析快速入门之四——数据可视化篇Pandas高级数据分析快速... 查看详情
pandas高级数据分析快速入门之六——机器学习预测分析篇(代码片段)
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇Pandas高级数据分析快速入门之四——数据可视化篇Pandas高级数据分析快速... 查看详情
pandas高级数据分析快速入门之三——数据挖掘与统计分析篇(代码片段)
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇Pandas高级数据分析快速入门之四——数据可视化篇Pandas高级数据分析快速... 查看详情
pandas高级数据分析快速入门之一——python开发环境篇
Pandas高级数据分析快速入门之一——Python开发环境篇Pandas高级数据分析快速入门之二——基础篇Pandas高级数据分析快速入门之三——数据挖掘与统计分析篇Pandas高级数据分析快速入门之四——数据可视化篇Pandas高级数据分析快速... 查看详情
sed修炼系列:花拳绣腿之入门篇
...为花拳绣腿招式入门篇,主要目的是入门,为看懂sed修炼系列(二):武功心法做准备。虽然是入门篇,只介绍了基本工作机制以及一些选项和命令,但其中仍然包括了很多sed的工作机制细节。对比网上各sed相关文章以及介绍sed的... 查看详情
springboot系列之入门篇
前言前面我们学习了Java基础和算法,接下来我们通过学习SpringBoot基础来强化代码书写能力,只有通过基础项目实践才能发现问题,在此过程中我们则可以进一步学习JVM虚拟机和线程知识,岂不两全其美,好了,话不多讲,我们... 查看详情
kotlin基础从入门到进阶系列讲解(入门篇)android之gson的使用(代码片段)
Kotlin基础从入门到进阶系列讲解(入门篇)Android之GSON的使用Android之GSON的使用Android之GSON的使用->返回总目录<-Google提供的GSON开源库可以让解析JSON数据的工作简单到让你不敢想象的地步项目中需要添加GSON库的依赖。编辑app/b... 查看详情
k8s入门系列之介绍篇
文章转自 http://www.cnblogs.com/xkops/p/6165565.html?Kubernetes介绍1.背景介绍 云计算飞速发展 -IaaS -PaaS -SaaS Docker技术突飞猛进 -一次构建,到处运行 -容器的快速轻量 -完整的生... 查看详情
k8s入门系列之介绍篇
原文链接:https://www.cnblogs.com/xkops/p/6165565.html(本文仅用于记录,方便日后自己查阅,如有侵权,请告知,将立即删除) •Kubernetes介绍1.背景介绍 云计算飞速发展 -IaaS -PaaS -SaaS Docker技术突... 查看详情
k8s入门系列之介绍篇
?Kubernetes介绍1.背景介绍 云计算飞速发展 -IaaS -PaaS -SaaS Docker技术突飞猛进 -一次构建,到处运行 -容器的快速轻量 -完整的生态环境2.什么是kubernetes Kubernetes(k8s)是Google... 查看详情
openlayers入门开发系列之地图导航控件篇
本篇的重点内容是利用openlayers来实现了地图导航控件功能,效果图如下:实现思路如下:创建一个地图控件基类,除了本篇的地图导航控件继承这个地图控件基类之外,后续的其他地图控件也是继承该基类地图控件基类中创建... 查看详情
k8s入门系列之介绍篇
1.背景介绍云计算飞速发展 -IaaS -PaaS -SaaSDocker技术突飞猛进 -一次构建,到处运行 -容器的快速轻量 -完整的生态环境 2.什么是kubernetesKubernetes(k8s)是Google开源的容器集... 查看详情
elasticsearch顶尖高手系列-快速入门篇
01.课程介绍02.用大白话告诉你什么是Elasticsearch03.Elasticsearch的功能、适用场景以及特点介绍04.手工画图剖析Elasticsearch核心概念:NRT、索引、分片、副本等05.在windows上安装和启动Elasticseach06.快速入门案例实战之电商网站商品管理... 查看详情
数据挖掘入门系列教程(四点五)之apriori算法(代码片段)
目录数据挖掘入门系列教程(四点五)之Apriori算法频繁(项集)数据的评判标准Apriori算法流程结尾数据挖掘入门系列教程(四点五)之Apriori算法Apriori(先验)算法关联规则学习的经典算法之一,用来寻找出数据集中频繁出现... 查看详情
openlayers4入门开发系列之前端动态渲染克里金插值kriging篇(附源码下载)(代码片段)
...子,这个也是学习openlayers4的好素材。openlayers4入门开发系列的地图服务基于Geoserver发布的,关于Geoserver方面操作的博客,可以参考以下几篇文章:geoserver安装部署 查看详情