python使用pandas实现数据分割实例代码


Posted in Python onJanuary 25, 2018

本文研究的主要是Python编程通过pandas将数据分割成时间跨度相等的数据块的相关内容,具体如下。

先上数据,有如下dataframe格式的数据,列名分别为date、ip,我需要统计每5s内出现的ip,以及这些ip出现的频数。

ip   date
0 127.0.0.21 15/Jul/2017:18:22:16
1 127.0.0.13 15/Jul/2017:18:22:16
2 127.0.0.11 15/Jul/2017:18:22:17
3 127.0.0.11 15/Jul/2017:18:22:20
4 127.0.0.21 15/Jul/2017:18:22:21
5 127.0.0.13 15/Jul/2017:18:22:22
6 127.0.0.14 15/Jul/2017:18:26:36
7 127.0.0.16 15/Jul/2017:18:32:15
8 127.0.0.11 15/Jul/2017:18:36:03

在网上找了很久但是没看到python的相关答案,但在stackoverflow找到了R语言的解法,有兴趣可以看看。

受它的启发,我用不太优雅的方式实现了我的需求,有更好解决方法的请不吝赐教:

step1: 将数据中日期格式变为标准格式

#date_ip为我的dataframe数据
date_ip['date'] = pd.to_datetime(date_ip['date'], format='%d/%b/%Y:%H:%M:%S')

step2: 将数据的开始时间、结束时间,按5s分割(由于时间段可能不是恰好是5s的倍数,为避免最后一个时间丢失,因此在最后加上5s)

frequency = 5
time_range = pd.date_range(date_ip['date'][0],
    date_ip['date'][date_ip.shape[0]-1]
    +frequency*Second(), freq='%sS'%frequency)

step3: 将date变为索引

date_ip = date_ip.set_index('date')

step4: 对每个时间段内的数据进行频数计算(由于通过标签切片时会包含头、尾数据,为避免重复计算,因此在尾部减1s)

for i in xrange(0,len(time_range)-1):
 print get_frequency(date_ip.loc[time_range[i]:time_range[i+1]-1*Second()])

完整的代码

import pandas as pd
from pandas.tseries.offsets import Second
def get_frequency(date_ip):
 ip_frequency = {}
 for i in xrange(0,date_ip.shape[0]):
 ip_frequency[date_ip['ip'][i]] = ip_frequency.get(date_ip['ip'][i], 0) + 1
 return ip_frequency,date_ip.shape[0]

if __name__ == '__main__': 
 date_ip['date'] = pd.to_datetime(date_ip['date'], format='%d/%b/%Y:%H:%M:%S')

 frequency = 5
 time_range = pd.date_range(date_ip['date'][0], date_ip['date'][date_ip.shape[0]-1]
    +frequency*Second(), freq='%sS'%frequency) 
 date_ip = date_ip.set_index('date')
 for i in xrange(0, len(time_range) - 1):
 print get_frequency(date_ip.loc[time_range[i]:time_range[i + 1]-1*Second()])

文章开头数据运行结果:

({'127.0.0.21' : 1, '127.0.0.13' : 1, '127.0.0.11' : 2}, 4)
({'127.0.0.21': 1, '127.0.0.13': 1}, 2)
({'127.0.0.14': 1}, 1)
({'127.0.0.16': 1}, 1)
({'127.0.0.11': 1}, 1)

总结

以上就是本文关于python使用pandas实现数据分割实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python常用模块用法分析
Sep 08 Python
python多线程threading.Lock锁用法实例
Nov 01 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 Python
聊聊Python String型列表求最值的问题
Jan 18 Python
Python借助with语句实现代码段只执行有限次
Mar 23 Python
python实现闹钟定时播放音乐功能
Jan 25 #Python
python实现壁纸批量下载代码实例
Jan 25 #Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 #Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 #Python
python中的set实现不重复的排序原理
Jan 24 #Python
详解Python之unittest单元测试代码
Jan 24 #Python
python爬取拉勾网职位数据的方法
Jan 24 #Python
You might like
PHP文件上传实例详解!!!
2007/01/02 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
Javascript & DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
庆祝教师节演讲稿
2014/09/03 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
Python上下文管理器Content Manager
2021/06/26 Python