Bonjour,
J'ai une base de données SQLite de la forme suivante :
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE IF NOT EXISTS CrudeData( id INTEGER PRIMARY KEY AUTOINCREMENT, cow INTEGER NOT NULL, date DATE NOT NULL, prod REAL NOT NULL, -- L cons REAL NOT NULL, -- kg lact INTEGER NOT NULL, day INTEGER NOT NULL, UNIQUE (cow, date) ); |
Cette base a été remplie à partir de fichiers CSV exportés du robot de traite de mon oncle. Seulement, il manque certaines lignes, si je puis dire. J'entends par là que pour une vache $c$ donnée, il existe des dates $d$ (comprises entre la date la plus ancienne et celle la plus récente) telles qu'aucune ligne de la table n'ait pour valeur $c$ dans le champ cow
et $d$ dans le champ date
.
Je souhaiterais alors remplir ces trous en respectant les contraintes des autres champs. Par exemple :
1 2 3 | id 8941 2014-05-05 20.3 11.2 3 200 id 8941 2014-05-07 25.7 14.2 3 202 id 8941 2014-05-09 10.1 12.5 4 2 |
deviendrait
1 2 3 4 5 | id 8941 2014-05-05 20.3 11.2 3 200 id 8941 2014-05-06 0 0 3 201 id 8941 2014-05-07 25.7 14.2 3 202 id 8941 2014-05-08 0 0 4 1 id 8941 2014-05-09 10.1 12.5 4 2 |
Pour cela, je pense qu'il me faut :
- Sélectionner les lignes correspondant à une vache donnée ;
- Classer ces lignes selon le champ
date
; - Repérer les trous ;
- Pour un trou donné, déterminer les valeurs des champs
lact
etday
Actuellement, je ne sais pas trop comment faire le 3è point. J'utilise Python.
Merci.
+0
-0