david-spacil / teplotni-odchylka.py

Last active 1 month ago

Like 0
teplotni-odchylka.py Raw
1import pandas as pd
2
3df = pd.read_csv("61b7cc82-fb4b-4c06-b26e-f76f61783c4e.csv")
4df['last_changed'] = pd.to_datetime(df['last_changed'])
5df['state'] = pd.to_numeric(df['state'], errors='coerce')
6
7# rozdělit na dva senzory
8inside = df[df['entity_id'].str.contains('timmerflotte')].set_index('last_changed')['state'].sort_index()
9outside = df[df['entity_id']=='sensor.teplota_venek'].set_index('last_changed')['state'].sort_index()
10
11print("timmerflotte: ", inside.min(), "-", inside.max(), "| rozsah času:", inside.index.min(), "->", inside.index.max())
12print("teplota_venek: ", outside.min(), "-", outside.max(), "| rozsah času:", outside.index.min(), "->", outside.index.max())
13print()
14
15# Sjednotit na společnou časovou osu pomocí forward-fill (step function - HA drží poslední hodnotu)
16combined = pd.concat([inside.rename('inside'), outside.rename('outside')], axis=1).sort_index()
17combined = combined.ffill().dropna()
18
19diff = combined['inside'] - combined['outside']
20
21print("Počet zarovnaných bodů:", len(combined))
22print()
23print(f"Průměrný rozdíl (vnitřní - venek): {diff.mean():+.3f} °C")
24print(f"Průměrný absolutní rozdíl |vnitřní-venek|: {diff.abs().mean():.3f} °C")
25print(f"Medián rozdílu: {diff.median():+.3f} °C")
26print(f"Min / Max rozdílu: {diff.min():+.3f} / {diff.max():+.3f} °C")
27print(f"Směrodatná odchylka rozdílu: {diff.std():.3f} °C")