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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
Python中获取对象信息的方法
Apr 27 Python
Python字符串格式化输出方法分析
Apr 13 Python
Python设计模式之代理模式简单示例
Jan 09 Python
python 中字典嵌套列表的方法
Jul 03 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
linux中如何使用python3获取ip地址
Jul 15 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
Python reduce函数作用及实例解析
May 08 Python
python字典与json转换的方法总结
Dec 28 Python
详解python日志输出使用配置文件格式
Feb 10 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之require/include顺序 推荐
2011/01/02 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
python ChainMap的使用和说明详解
2019/06/11 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
python队列原理及实现方法示例
2019/11/27 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
基于Python正确读取资源文件
2020/09/14 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
电子信息毕业生自荐信
2013/11/16 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
青春寄语大全
2014/04/09 职场文书
旅游安全协议书
2014/04/21 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
七年级生物教学反思
2016/02/20 职场文书
2019思想汇报范文
2019/05/21 职场文书
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS