这篇文章主要介绍了利用python中的pandas库进行cdn日志分析的相关资料,文中分享了pandas对cdn日志分析的完整示例代码,然后详细介绍了关于pandas库的相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。
前言
最近工作工作中遇到一个需求,是要根据CDN日志过滤一些数据,例如流量、状态码统计,TOP IP、URL、UA、Referer等。以前都是用 bash shell 实现的,但是当日志量较大,日志文件数G、行数达数千万亿级时,通过 shell 处理有些力不从心,处理时间过长。于是研究了下Python pandas这个数据处理库的使用。一千万行日志,处理完成在40s左右。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
|
pandas 学习笔记
立即学习“Python免费学习笔记(深入)”;
Pandas 中有两种基本的数据结构,Series 和 Dataframe。 Series 是一种类似于一维数组的对象,由一组数据和索引组成。 Dataframe 是一个表格型的数据结构,既有行索引也有列索引。
1 2 |
|
Series
1 2 3 4 5 6 7 |
|
Series的字符串表现形式为:索引在左边,值在右边。没有指定索引时,会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组表示形式和索引对象:
1 2 3 4 |
|
通常创建Series时会指定索引:
1 2 3 4 5 6 7 |
|
通过索引获取Series中的单个或一组值:
1 2 3 4 5 6 |
|
排序
1 2 3 4 5 6 7 8 9 10 11 12 |
|
筛选运算
1 2 3 4 5 6 7 8 9 10 11 |
|
成员
1 2 3 4 |
|
通过字典创建Series
1 2 3 4 5 6 7 8 |
|
如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)
1 2 3 4 5 6 7 8 |
|
当指定index时,sdata中跟states索引相匹配的3个值会被找出并放到响应的位置上,但由于‘Suzhou'所对应的sdata值找不到,所以其结果为NaN(not a number),pandas中用于表示缺失或NA值
pandas的isnull和notnull函数可以用于检测缺失数据:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Series也有类似的实例方法
1 2 3 4 5 6 |
|
Series的一个重要功能是,在数据运算中,自动对齐不同索引的数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Series的索引可以通过复制的方式就地修改
1 2 3 4 5 6 7 |
|
DataFrame
pandas读取文件
1 2 3 4 5 6 7 8 |
|
DataFrame列选取
1 |
|
1 2 3 4 5 6 7 |
|
DataFrame行选取
1 2 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
获取一个元素,可以通过iloc,更快的方式是iat
1 2 3 4 |
|
DataFrame块选取
1 2 3 4 5 |
|
根据条件过滤行
在方括号中加入判断条件来过滤行,条件必需返回 True 或者 False
1 2 3 4 5 6 7 8 9 10 11 |
|
增加列
1 2 3 4 5 6 7 8 |
|
排序
按指定列排序
1 2 3 4 5 6 7 |
|
1 2 |
|
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
转置
1 2 3 4 5 6 |
|
使用isin
1 2 3 4 5 6 |
|
运算操作:
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
group
group 指的如下几步:
Splitting the data into groups based on some criteria
Applying a function to each group independently
Combining the results into a data structure
See the Grouping section
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
group一下,然后应用sum函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
【相关推荐】
1. Python免费视频教程
2. 对象0
3. 对象1
以上就是通过pandas库对cdn日志实现分析的python代码实例的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号