Python从数据库取数,对时间进行处理,统计数据汇总后画图
2017-07-31 18:22
956 查看
#-*- coding: utf8 -*- import odbc import numpy as np import pylab as pl allDate = [] allData = [] if __name__ == '__main__': print("run success") allDate, allData = odbc.getData() # print(allDate) pl.plot(allDate,allData) pl.show() else: print("run error")import pymysql as mysql import time, datetime mysql.install_as_MySQLdb() def getData(): try: # 获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库 conn = mysql.connect(host='xxx.xxx.xxx.xxx', user='xxx', passwd='xxx', db='xxx', port=xxx, charset='utf8') cur = conn.cursor() # 获取一个游标 sql = """SELECT a.changenum,a.updatetime from xxxx a join xxxxx b on a.x = b.x where b.name = 'xxx' and a.updatetime > '2017-07-01 00:00:00' ORDER BY updatetime ASC""" cur.execute(sql) # 游标执行sql查询语句 data = cur.fetchall() # fetchall()则是接收全部的返回结果行 change_data = [] change_date = [] for d in data: # 循环结果进行显示 change_data.append(d[0]) change_date.append(d[1]) cur.close() # 关闭游标 conn.close() # 关闭连接 except Exception: print("查询失败") print(change_data) print(change_date) first_date = datetime.datetime.strptime( datetime.datetime.strftime(change_date[0], '%Y-%m-%d %H:%M:%S')[0:10] + " 00:00:00", '%Y-%m-%d %H:%M:%S') # 获取第一个时间数据,取得日期部分,向前 last_date = datetime.datetime.strptime( datetime.datetime.strftime(change_date[len(change_date) - 1], '%Y-%m-%d %H:%M:%S')[0:10] + " 00:00:00", '%Y-%m-%d %H:%M:%S') + datetime.timedelta(days=1) # 获取最后一个时间数据,取得日期部分,向后 # print(first_date) # print(last_date) date = [] data = [] temp_date = first_date n = 0 num = 0 #外层循环,每次增加半小时 while temp_date < last_date: for i in range(n, len(change_date)): #内层循环,循环数据库数据,在该半小时之内的变换情况 if temp_date <= change_date[i] < temp_date + datetime.timedelta(minutes=30): num += change_data[i] else: break data.append(num) # 对变化情况进行记录以便于后续画图的Y轴数据 num = 0 n = i temp_date = temp_date + datetime.timedelta(minutes=30) # 横轴时间数据 date.append(temp_date) print(len(date)) print(len(data)) print(date) print(data) return date, data # 因为未对齐到外层的getData()主函数,曾经导致出错
相关文章推荐
- Python利用groupby模块进行Mysql分表数据的汇总统计
- 利用Python进行数据分析(9) pandas基础: 汇总统计和计算
- 数据库的点数据根据行政区shp来进行行政区处理,python定时器实现
- 利用GSON对json数据中的时间类型字符串进行处理,并且进行数据库查询
- 用python对文本格式的数据进行统计处理
- 基因数据处理16之scala对BWASW运行结果进行时间统计
- 利用 Python 进行数据分析(九)pandas 汇总统计和计算
- 基因数据处理17之使用scala对BWA运行结果进行各阶段程序时间提取和统计求和
- Mysql分表数据通过Python进行汇总统计
- MFC学习(17)数据库对于给定起始时间和目标统计时间段的情况如何处理
- 利用Python进行数据分析--时间序列
- DetailsView中如何进行数据验证,如何处理数据库的异常
- Oracle数据库按时间进行分组统计数据的方法
- 利用Python进行数据分析——时间序列[十](1) .
- 在Python中处理日期和时间的基本知识点整理汇总
- python处理时间汇总
- Ubuntu + coreseek + python + mysql (三、通过前端html进行搜索,用python处理数据)
- 对数据库中的数据进行分页处理的实现
- 对数据库中时间为空的处理和数据转换成百分数
- python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)