Files
Influxlibrary_Prax22/Influxdataframe.py
2022-12-09 11:20:16 +01:00

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