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批量修改文件后缀的方法
Jan 26 Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 Python
python 内置函数filter
Jun 01 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
python实现简单名片管理系统
Nov 30 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
Python制作词云图代码实例
Sep 09 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 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 url路由入门实例
2014/04/23 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
python如何实现一个刷网页小程序
2018/11/27 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
python开发前景如何
2020/06/11 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
硕士研究生个人求职信
2013/12/04 职场文书
党校学习思想汇报
2014/01/06 职场文书
人事任命书范文
2014/06/04 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
领导干部失职检讨书
2015/05/05 职场文书
小学生暑假安全公约
2015/07/14 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android