PV Monitoring - Pecos

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lionel9696
User
Beiträge: 1
Registriert: Dienstag 6. September 2022, 08:05

Hallo zusammen,

dein dem erstellen eines PV Monitorings stoße ich auf das Problem: AssertionError: data.index must be a DatetimeIndex in Zeile 60 pm.add_dataframe(values)

Sobald ich dier Vaiaablen Values & History in einen DatetimeIndex wandle
#values = pd.to_datetime((values.index))
#history = pd.to_datetime((history.index))
bekomme ich den Fahler AssertionError: data must be of type pd.DataFrame in Zeile 60 pm.add_dataframe(values)

Die Datenbasis ist Folgende: https://github.com/sandialabs/pecos/blo ... _11_11.dat

Ich komme leider nicht mehr weiter und hoffe Ihr kennt eine Lösung.

[code
import pandas as pd
import numpy as np
import datetime
import loggin

# Create the SQLite engine
# db_uri = environ.get('SQLALCHEMY_DATABASE_URI')
# engine = create_engine(db_uri, echo=False)
# df = pd.read_csv("Datenbasis")
# df.to_sql("Testdaten_WR", engine)

# Load data and recent history from the database
today = datetime.date.today()
print(today)
history = today -datetime.timedelta(days=1)
data = pd.read_csv("Datenbasis")
df = pd.DataFrame(data)
pd.to_datetime(df['TIMESTAMP'])
df.index = pd.DataFrame(df['TIMESTAMP'])
values = pd.date_range(start=today, end=today, freq='1MIN')
values=pd.DataFrame(values)
history = pd.date_range(start=history, end=history , freq='1MIN')
history=pd.DataFrame(history)

# Setup the PerformanceMonitoring with data and history and run a streaming outlier test

pm = pecos.monitoring.PerformanceMonitoring()

print(history)
print(values)
pm.add_dataframe(values)
pm.add_dataframe(history)
pm.check_outlier([-3, 3], window=3600, streaming=True)

# Save the cleaned data and test results to the database
pm.cleaned_data.to_sql('qc_data', if_exists='append')
pm.test_results.to_sql('qc_summary', if_exists='append')[/code]

Vielen Dank im Voraus!

Beste grüße
Lionel
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

Dein Code hat gar keine Zeile 60. Das Modul `loggin` wird importiert, aber gar nicht benutzt, dagegen wird das Modul `pecos` gar nicht importiert.
Mit Code-Raten kommt man selten sehr weit. add_dataframe scheint ein Dateframe zu erwarten, dessen Index eine Zeit ist, Du lieferst aber einen Dataframe, dessen Index ganze Zahlen sind, und dessen einzige Spalte Zeiten sind.
Die Zahlen 0 bis 0 in ein Datum umzuwandeln und das zu übergeben, macht wenig Sinn.
Du mußt halt das Dataframe füttern, das add_dataframe erwartet, also als Index die Zeit nehmen und dann noch irgendwelche Daten, welche das auch immer sind.
Antworten