71 lines
2.6 KiB
Markdown
71 lines
2.6 KiB
Markdown
# Ajustements
|
|
|
|
Le fichier peut être rapidement inspecté avec la commande `head` :
|
|
|
|
```shell
|
|
head data/weather_raw_full.csv
|
|
```
|
|
|
|
```output
|
|
time,temperature,humidity,pressure,illuminance,wind_speed,wind_direction,rain_rate
|
|
2025-03-10 09:35:23.156646+00:00,,,996.95,,,,
|
|
2025-03-10 09:35:23.158538+00:00,10.6,,,,,,
|
|
2025-03-10 09:35:23.162398+00:00,,83.0,,,,,
|
|
2025-03-10 09:35:23.164634+00:00,,,,,7.4,,
|
|
2025-03-10 09:35:23.170122+00:00,,,,,,256.0,
|
|
2025-03-10 09:35:23.183555+00:00,,,,,,,0.0
|
|
2025-03-10 09:35:41.211148+00:00,,,,20551.2,,,
|
|
2025-03-10 09:36:22.638255+00:00,,,,,12.2,,
|
|
2025-03-10 09:36:22.640356+00:00,,,,,,306.0,
|
|
```
|
|
|
|
On peut voir que HomeAssistant écrit une nouvelle entrée pour chaque capteur, alors qu'on aurait pu s'attendre à une ligne unique pour l'ensemble des capteurs.
|
|
|
|
Le script suivant s'occupe de regrouper les données de capteurs dont l'enregistrement est proche :
|
|
|
|
```shell
|
|
python -m scripts.format_raw_csv
|
|
```
|
|
|
|
```output
|
|
Fichier brut chargé : data/weather_raw_full.csv
|
|
Lignes : 1570931, colonnes : ['temperature', 'humidity', 'pressure', 'illuminance', 'wind_speed', 'wind_direction', 'rain_rate']
|
|
Type d'index : <class 'pandas.core.indexes.datetimes.DatetimeIndex'>
|
|
Après combinaison (1s) : 630171 lignes
|
|
✔ Fichier formaté écrit dans : /Users/richard/Documents/donnees_meteo/data/weather_formatted_1s.csv
|
|
```
|
|
|
|
Un nouveau document CSV intermédiaire est donc créé.
|
|
|
|
```shell
|
|
head data/weather_formatted_1s.csv
|
|
```
|
|
|
|
```output
|
|
time,temperature,humidity,pressure,illuminance,wind_speed,wind_direction,rain_rate
|
|
2025-03-10 09:35:23+00:00,10.6,83.0,996.95,,7.4,256.0,0.0
|
|
2025-03-10 09:35:41+00:00,,,,20551.2,,,
|
|
2025-03-10 09:36:22+00:00,,,,20247.6,12.2,306.0,
|
|
2025-03-10 09:36:52+00:00,,,,20199.6,9.3,246.0,
|
|
2025-03-10 09:37:22+00:00,,,,20034.0,7.9,,
|
|
2025-03-10 09:37:52+00:00,,,,20124.0,7.4,284.0,
|
|
2025-03-10 09:38:22+00:00,,,,19860.0,9.7,215.0,
|
|
2025-03-10 09:39:22+00:00,,,,19722.0,11.4,203.0,
|
|
2025-03-10 09:40:22+00:00,,,,19720.8,10.0,209.0,
|
|
```
|
|
|
|
Il reste des cellules vides : en effet, HA n'enregistre pas la valeur d'un capteur si elle n'a pas changé depuis la dernière fois.
|
|
|
|
On fait donc :
|
|
|
|
```shell
|
|
python -m scripts.fill_formatted_1s
|
|
```
|
|
|
|
```output
|
|
Fichier 1s formaté chargé : data/weather_formatted_1s.csv
|
|
Lignes : 630171, colonnes : ['temperature', 'humidity', 'pressure', 'illuminance', 'wind_speed', 'wi
|
|
nd_direction', 'rain_rate'] Après propagation des dernières valeurs connues : 630171 lignes
|
|
✔ Fichier 1s 'complet' écrit dans : /Users/richard/Documents/donnees_meteo/data/weather_filled_1s.csv
|
|
```
|