如何将大数据量的文本文件,按照条件完成多行合并的操作方法
数据格式如下:
······
1107 1385331000000 1.3142511607126754
1107 1385331000000 0.0021683196661660157
1107 1385331600000 0.0021683196661660157
1107 1385331600000 1.4867805985670923
1107 1385331600000 0.0021683196661660157
1107 1385332200000 1.1697626938303243
1107 1385332800000 0.0021683196661660157
1107 1385332800000 0.005813069022279304
1107 1385332800000 1.2847329440609827
1107 1385332800000 0.0021683196661660157
1107 1385333400000 1.2891586380834603
1108 1385247600000 0.026943168177151356
1108 1385247600000 6.184696475262653
1108 1385248200000 0.05946288920050806
1108 1385248200000 6.359572785335356
1108 1385248200000 0.010602880590260044
1108 1385248800000 0.026943168177151356
1108 1385248800000 5.568047923787272
1108 1385249400000 0 0.01024202685104009
1108 1385249400000 5.213017822855314
1108 1385250000000 0.01024202685104009
1108 1385250000000 5.385327254217893
1108 1385250600000 0.016259860511678353
1108 1385250600000 4.902644074658115
1108 1385251200000 4.141288808488436
1108 1385251800000 0.05388633635430271
1108 1385251800000 4.684096694966861
1108 1385251800000 0.01024202685104009
1108 1385252400000 4.386580113177049
1108 1385253000000 4.582219390797833
1108 1385253600000 5.211061096279831
1108 1385254200000 0.02048405370208018
1108 1385254200000 3.901546051563316
1108 1385254200000 0.01024202685104009
1108 1385254800000 4.0387888693118255
······
每一行数据间是tab键隔开的
第一列是标号,第二列是UTC格式时间戳,第三列是流量数据,每行的数据是10分钟内的,现在想把同一个标号的比如第一列为1107的每一小时的数据叠加起来成为新的一行(第二列的时间可以用时间戳表示或者以时间间隔表示),完全没有头绪,请大神指点指点
pandas可以解决你的需求,读取数据到dataframe中再进行处理
如果是按照时间序列的,直接使用generator来读取原文件,生成新的行然后输出就可以了.
你这个等于就是基于标号和小时两个指标分组统计,用pandas读入,用to_datetime将时间戳转化为时间列再取小时数,然后用groupby同时对标号和小时进行分类,sum汇总就行了。
请用这个思路
https://www.zhihu.com/questio...
这个要看你的数据量有多大了
大概的思路如下
from collections import Counter
c = Counter()
f = ['1107 1385332800000 1.2847329440609827',
'1107 1385332800000 0.0021683196661660157',
'1107 1385333400000 1.2891586380834603',
'1108 1385247600000 0.026943168177151356',
'1108 1385247600000 6.184696475262653',
'1108 1385248200000 0.05946288920050806' ]
'''
with open('xxoo.txt') as f: # f 文件遍历句柄,相当于上面的 list f
for i in f:
s = i.split()
c[s[0]] += s[2]
'''
for i in f: # 这里是遍历 f, 这里遍历的是 list f, 你实际情况要用上面的 f
s = i.split() # 这里是空格分割,可以使用 print s 看看结果
c[s[0]] += float(s[2]) # c 用来统计
for i in c:
print i, c[i]
我觉得你这个数据格式可以稍加分析一下再做
1.第一列表示日期,你可以做为结果数组的第一层的键,result[date]
2.第二列看着应该是时间(分钟)的时间戳,这样你要求按小时来做结果,你就每个result[data]项初始化24个元素,键就是小时数(可以用相应的小时数的时间戳的值做键),键值对应的就是这个小时内的数据总和,即resultdate
3.初始化完成这个结果数组以后就简单了,你就遍历文件,逐行处理就可以了,每一行先读取第一列的值,比如1107,
就操作result[1107]。接着读取第二列,找到对应的hourtimestamp键,累加就行了。
4.最后遍历result数组,输出结果就行了。
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13715.html
相关文章 Recommend
- • Python什么方法可以快速将两个队列变成字典
- • python如何缩短cmd中过长的命令
- • 豆瓣API 40次/分钟的访问限制怎么办
- • 大家都来晒晒您见过的最优秀最实用的一段pyth
- • 如何为实时性应用存取经纬度?django mysql
- • 大家一起来讨论抽用正则取优酷视频并生成播放
- • 想转业学python,请问应该如何规划自己的学习计划
- • 问浏览器地址栏如何执行虚拟主机脚本关于环境
- • 关于web.py性能优化方法大家闲聊讨论下
- • 请大家荐些适合新手练习python开源项目学习学习
- • 求大牛看下python源码中的__init__()作用是什么
- • 在生产环境中thrift Python server如何选择
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问