Guest User

Untitled

a guest
Sep 8th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. Всем привет
  2. У меня есть БД вида:
  3.  
  4. Время|X|Y|Z|Количество
  5. 18:04:23|24|0.63790|45|892
  6. 18:12:27|32|0.54881|36|701
  7. 18:34:34|46|0.45972|27|610
  8. 18:59:56|02|0.36363|08|529
  9. 18:59:56|02|0.36363|08|529
  10. 18:59:56|02|0.36363|08|529
  11. 18:59:56|02|0.36363|08|529
  12. 19:06:23|67|0.27054|99|438
  13. 19:23:43|56|0.18145|80|347
  14. 19:32:45|99|0.09236|71|256
  15. 19:43:12|13|0.90327|62|165
  16. 19:43:12|13|0.90327|62|165
  17. 20:04:00|24|0.81418|53|074
  18. 20:38:24|54|0.72509|44|983
  19. 20:47:46|75|0.63690|35|892
  20. 21:04:59|83|0.54781|26|701
  21. ...|...|...|...|...
  22. 06:04:23|67|0.52342|26|345
  23.  
  24. И код:
  25.  
  26. import mysql.connector
  27. from itertools import groupby
  28. import pandas as pd
  29. db= mysql.connector.connect(user='Admin',
  30. password='Admin',host='Admin',database='admin')
  31. cursor = db.cursor()
  32. cursor.execute("SELECT Time,X,Y,Z FROM `data`")
  33. a=[]
  34. for c in cursor:
  35. a.append(c)
  36. x=pd.Series(a)
  37. result =[list(gr) for _,gr in groupby(j,key=lambda s: s.split()[1][:2])]
  38. r=len(result)
  39. p=[]
  40. for z in range(len(x)-1):
  41. current_item, next_item = x[z], x[z+1]
  42. if current_item[0].strftime("%H")<next_item[0].strftime("%H"):
  43. p.append(current_item[0].strftime("%H"))
  44. for d in range(0,len(p)):
  45. s.append(d)
  46. arr = [[] for _ in range(len(p))]
  47. for Varr in arr:
  48. for r in range(len(p)-1):
  49. Varr=[]
  50. current_item, next_item = p[r], p[r+1]
  51. cursor.execute("SELECT Time,X,Y,Z FROM `dataset` WHERE Time BETWEEN
  52. '2018-09-06 %s:00:00' AND '2018-09-06 %s:00:00'",(int(current_item),
  53. int(next_item)))
  54. for w in cursor:
  55. Varr.append(w)
  56. arr.append(Varr)
  57. db.close()
  58. print(arr)
  59.  
  60. Я хочу получить двумерный массив данных чтобы все значения от 19:00:00-19:59:59 были в одном массиве, а 20:00:00-20:59:59 в другом и так далее. Что-то вроде этого:
  61. [[[18:04:23,24,0.63790,45,892],
  62. [18:12:27,32,0.54881,36,701],
  63. [18:34:34,46,0.45972,27,610],
  64. [18:59:56,02,0.36363,08,529],
  65. [18:59:56,02,0.36363,08,529],
  66. [18:59:56,02,0.36363,08,529],
  67. [18:59:56,02,0.36363,08,529]],
  68. [[19:06:23,67,0.27054,99,438],
  69. [19:23:43,56,0.18145,80,347],
  70. [19:32:45,99,0.09236,71,256],
  71. [19:43:12,13,0.90327,62,165],
  72. [19:43:12,13,0.90327,62,165]],
  73. [[20:04:00,24,0.81418,53,074],
  74. [20:38:24,54,0.72509,44,983],
  75. [20:47:46,75,0.63690,35,892]],
  76. [[21:04:59,83,0.54781,26,701]],
  77. [[...,...,...,...,...]],
  78. [[06:04:23,67,0.52342,26,345]]]
  79.  
  80. И чтоб я мог вызывать каждое число в отдельности
  81.  
  82. print(arr[0][1][2])
  83. 0.54881
  84.  
  85. Могли бы вы проверить мой код и подсказать что не так?
  86. P.s: Если есть метод лучше пожалуйста подскажите
Add Comment
Please, Sign In to add comment