Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Всем привет
- У меня есть БД вида:
- Время|X|Y|Z|Количество
- 18:04:23|24|0.63790|45|892
- 18:12:27|32|0.54881|36|701
- 18:34:34|46|0.45972|27|610
- 18:59:56|02|0.36363|08|529
- 18:59:56|02|0.36363|08|529
- 18:59:56|02|0.36363|08|529
- 18:59:56|02|0.36363|08|529
- 19:06:23|67|0.27054|99|438
- 19:23:43|56|0.18145|80|347
- 19:32:45|99|0.09236|71|256
- 19:43:12|13|0.90327|62|165
- 19:43:12|13|0.90327|62|165
- 20:04:00|24|0.81418|53|074
- 20:38:24|54|0.72509|44|983
- 20:47:46|75|0.63690|35|892
- 21:04:59|83|0.54781|26|701
- ...|...|...|...|...
- 06:04:23|67|0.52342|26|345
- И код:
- import mysql.connector
- from itertools import groupby
- import pandas as pd
- db= mysql.connector.connect(user='Admin',
- password='Admin',host='Admin',database='admin')
- cursor = db.cursor()
- cursor.execute("SELECT Time,X,Y,Z FROM `data`")
- a=[]
- for c in cursor:
- a.append(c)
- x=pd.Series(a)
- result =[list(gr) for _,gr in groupby(j,key=lambda s: s.split()[1][:2])]
- r=len(result)
- p=[]
- for z in range(len(x)-1):
- current_item, next_item = x[z], x[z+1]
- if current_item[0].strftime("%H")<next_item[0].strftime("%H"):
- p.append(current_item[0].strftime("%H"))
- for d in range(0,len(p)):
- s.append(d)
- arr = [[] for _ in range(len(p))]
- for Varr in arr:
- for r in range(len(p)-1):
- Varr=[]
- current_item, next_item = p[r], p[r+1]
- cursor.execute("SELECT Time,X,Y,Z FROM `dataset` WHERE Time BETWEEN
- '2018-09-06 %s:00:00' AND '2018-09-06 %s:00:00'",(int(current_item),
- int(next_item)))
- for w in cursor:
- Varr.append(w)
- arr.append(Varr)
- db.close()
- print(arr)
- Я хочу получить двумерный массив данных чтобы все значения от 19:00:00-19:59:59 были в одном массиве, а 20:00:00-20:59:59 в другом и так далее. Что-то вроде этого:
- [[[18:04:23,24,0.63790,45,892],
- [18:12:27,32,0.54881,36,701],
- [18:34:34,46,0.45972,27,610],
- [18:59:56,02,0.36363,08,529],
- [18:59:56,02,0.36363,08,529],
- [18:59:56,02,0.36363,08,529],
- [18:59:56,02,0.36363,08,529]],
- [[19:06:23,67,0.27054,99,438],
- [19:23:43,56,0.18145,80,347],
- [19:32:45,99,0.09236,71,256],
- [19:43:12,13,0.90327,62,165],
- [19:43:12,13,0.90327,62,165]],
- [[20:04:00,24,0.81418,53,074],
- [20:38:24,54,0.72509,44,983],
- [20:47:46,75,0.63690,35,892]],
- [[21:04:59,83,0.54781,26,701]],
- [[...,...,...,...,...]],
- [[06:04:23,67,0.52342,26,345]]]
- И чтоб я мог вызывать каждое число в отдельности
- print(arr[0][1][2])
- 0.54881
- Могли бы вы проверить мой код и подсказать что не так?
- P.s: Если есть метод лучше пожалуйста подскажите
Add Comment
Please, Sign In to add comment