Формат JSON такой. Я выполняю расчеты по данным, например, на дату 1 января 2017 года. Например, 1 января 2017 года будет воскресенье. Но в 2018 году 1 января 2018 года будет понедельник. Теперь я знаю, что каждый год в эти дни на 1 шаг вперед. Но мои расчеты основаны на днях, например, мне нужно сравнивать значения понедельника с понедельником, а не с выходными, потому что коэффициент, который я вычислю, будет неверным, если сравнивать будний день с выходными.
import plotly.graph_objects as go
import numpy as np
import json
with open('test.json') as json_file:
data = json.load(json_file)
X, Y = [], []
for item in data['Elements']:
for sub_item in item['TimeSpans']:
if (item['Date'].startswith("2017")):
X.append(sub_item['TimeSpan']+" "+ item['Date']) #2017
Y.append(sub_item['Value'])
X1, Y1 = [], []
for item in data['Elements']:
for sub_item in item['TimeSpans']:
if (item['Date'].startswith("2018")):
X1.append(sub_item['TimeSpan']+" "+ item['Date']) #2018
Y1.append(sub_item['Value'])
diff = []
for i in range(len(Y)):
if(Y[i]==0):
diff.append(1)
if(Y1[i]==0):
diff.append(1)
else:
var = Y[i] / Y1[i]
diff.append(var)
#print(diff[0])
XP=[]
YP=[]
for k in range(len(Y1)): #len(diff)
if (Y1[k]==0):
YP.append(Y1[k])
if (diff[k]==0):
YP.append(Y1[k])
var2 = Y1[k]/diff[k]
YP.append(var2)
for item in data['Elements']:
for sub_item in item['TimeSpans']:
if (item['Date'].startswith("2019")):
XP.append(sub_item['TimeSpan']+" "+ item['Date']) #2019
{
"SpotKey": "79",
"SpotName": "ELIX",
"Denomination": "eur/mwh",
"Elements": [
{
"Date": "2017-01-01T00:00:00",
"Base": 36.8696,
"Peak": 36.0125,
"TimeSpans": [
{
"TimeSpan": "00:00-01:00",
"Value": 46.43
},
{
"TimeSpan": "01:00-02:00",
"Value": 42.43
}
]
},
{
"Date": "2017-01-02T00:00:00",
"Base": 53.7413,
"Peak": 63.0317,
"TimeSpans": [
{
"TimeSpan": "00:00-01:00",
"Value": 41.18
},
{
"TimeSpan": "01:00-02:00",
"Value": 37.34
}
]
}
]
}
Итак, здесь я пытаюсь предсказать данные за 2019 год и визуализировать их с помощью графика. Как мне преодолеть эту дату с проблемой соответствия дня?
Date=[]
for item in data['Elements']:
for sub_item in item['TimeSpans']:
if (item['Date'].startswith("2017")):
iso_day = datetime.datetime.strptime(item['Date'], '%Y-%m-%dT%H:%M:%S').isocalendar() #Moving Date Logic
iso_day[2] == 1
Date.append(iso_day)
for loop in range(len(Date)):
print(Date[loop])