python datatime 平均值_python求数据的时间平均

#!/usr/bin/python

# encoding: utf-8

import re

from itertools import imap, ifilter

# 定义正则表达式

patt = re.compile(r"""

(?P

\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}) # 日期时间

\s*,\s*    # 分隔符号

(?P\d+) # 数值

""", re.I|re.U|re.X)

def iterdatainfile(file):

"""从文件中逐条返回数据

"""

# 打开文件作为句柄handle

with open(file, 'rt') as handle:

# imap(patt.match, .. : 逐行用正则表达式patt解析从handle中读取的数据,

# ifilter(None, .. : 忽略无法匹配的行

for matched in ifilter(None,

imap(

patt.match,

handle)):

# 将解析的结果数据(dict)迭代返回

yield matched.groupdict()

# 准备一个统计器

meter = {}

# 用iterdatainfile()函数逐行处理文件中的数据

for data in iterdatainfile("data.txt"):

# 数据"dt"的分钟前部分作为key, 空列表为value;

# 数据添加到key的列表中;

meter.setdefault(

data["dt"][:-6],

[]).append(int(data["value"]))

# 遍历各个时间点及其对应的值列表

for dt, values in meter.items():

# 打印 dt, 对应列表的合计 / 列表元素的数量

print dt, sum(values)/len(values)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值