78 lines
2.4 KiB
Python
78 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Fri Dec 2 07:46:09 2022
|
|
|
|
@author: Daniel Häfliger
|
|
"""
|
|
import pandas as pd
|
|
import Influxclient as I
|
|
import influxdb_client
|
|
|
|
|
|
# Returns values of an influxDB as they where specified in the config.xml
|
|
# as a Pandas Dataframe
|
|
def Get_Df():
|
|
|
|
|
|
xfile = pd.read_xml('config.xml')
|
|
org = (xfile.loc[xfile['category'] == 'influx'].organisation[0])
|
|
token = (xfile.loc[xfile['category'] == 'influx'].influxtoken[0])
|
|
url = (xfile.loc[xfile['category'] == 'influx'].url[0])
|
|
|
|
client = influxdb_client.InfluxDBClient(
|
|
url=url,
|
|
token=token,
|
|
org=org
|
|
)
|
|
|
|
bucket = (xfile.loc[xfile['category'] == 'influx'].bucket[0])
|
|
measurement = (xfile.loc[xfile['category'] == 'influx'].measurement[0])
|
|
|
|
interval = (xfile.loc[xfile['category'] == 'influx'].interval[0])
|
|
valuessince = (xfile.loc[xfile['category'] == 'influx'].time[0])
|
|
|
|
Input = xfile.loc[xfile['category'] == 'feature'].f[1]
|
|
#numberofFeature=(xfile.loc[xfile['category']=='feature'].features[1])
|
|
|
|
feature = Input.split()
|
|
pred = xfile.loc[xfile['category'] == 'pred'].p1[2]
|
|
|
|
|
|
data = {
|
|
|
|
"y_r": I.Get_Time(client, bucket, valuessince, measurement, feature[0])[0],
|
|
"y_i": I.Get_Time(client, bucket, valuessince, measurement, feature[0])[1],
|
|
"d_r": I.Get_Time(client, bucket, valuessince, measurement, feature[0])[2],
|
|
"d_i": I.Get_Time(client, bucket, valuessince, measurement, feature[0])[3],
|
|
|
|
}
|
|
|
|
for i in range(len(feature)):
|
|
newd = {(feature[i]): I.Get_Value(client, bucket,
|
|
valuessince, measurement, feature[i])}
|
|
data.update(newd)
|
|
|
|
newd = {(pred): I.Get_Value(client, bucket,
|
|
valuessince, measurement, pred)}
|
|
data.update(newd)
|
|
|
|
return pd.DataFrame(data)
|
|
|
|
|
|
|
|
# Shifts the target variable and adds [shift_number] colums with the shiftet
|
|
# values, then return the new Dataframe
|
|
def ShiftTarget(df, shift_number, targetvariable):
|
|
dfziel = df[[targetvariable]].copy()
|
|
df = df.rename(columns={targetvariable:(targetvariable+str(0))})
|
|
dfziel = dfziel.rename(columns={targetvariable:(targetvariable+str(0))})
|
|
|
|
|
|
|
|
for i in range(shift_number):
|
|
dfziel = dfziel.rename(columns={(targetvariable+str(i)):targetvariable+str(i+1)})
|
|
dfziel = dfziel.shift(1)
|
|
df = pd.concat([df, dfziel], axis=1)
|
|
|
|
return df
|