issue82:programmer_en_python
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue82:programmer_en_python [2014/07/11 13:48] – [2] auntiee | issue82:programmer_en_python [2014/07/25 20:46] (Version actuelle) – [10] fredphil91 | ||
---|---|---|---|
Ligne 59: | Ligne 59: | ||
On reçoit simplement un ensemble de données retourné par la requête, mais nous pourrions avoir envie de faire une analyse plus approfondie des données, donc nous voulons mettre les données résultant de la requête dans une table. C'est pourquoi nous aimerions créer une table à partir de la requête. Ainsi, dans l' | On reçoit simplement un ensemble de données retourné par la requête, mais nous pourrions avoir envie de faire une analyse plus approfondie des données, donc nous voulons mettre les données résultant de la requête dans une table. C'est pourquoi nous aimerions créer une table à partir de la requête. Ainsi, dans l' | ||
- | Maintenant quand nous aurons besoin de cet ensemble de données des jours de semaine, nous pourrons simplement exécuter une requête sur la table « JoursDeSemaine ». | + | Maintenant, quand nous aurons besoin de cet ensemble de données des jours de semaine, nous pourrons simplement exécuter une requête sur la table « JoursDeSemaine ». |
====== 5 ====== | ====== 5 ====== | ||
Ligne 70: | Ligne 70: | ||
Une fois que nous savons ce que nous voulons, et que nous avons testé la requête, nous pouvons commencer notre code. En supposant que nous avons déjà la table « étude » créée et remplie, nous pouvons utiliser Python pour créer notre nouvelle table dans la base de données principale. Pour votre information, | Une fois que nous savons ce que nous voulons, et que nous avons testé la requête, nous pouvons commencer notre code. En supposant que nous avons déjà la table « étude » créée et remplie, nous pouvons utiliser Python pour créer notre nouvelle table dans la base de données principale. Pour votre information, | ||
- | Nous devons, bien sûr, ouvrir une connexion (à droite) et créer un curseur pour la base de données SQLite. Nous avons vu ceci dans un certain nombre d'articles précédents. | + | Nous devons, bien sûr, ouvrir une connexion (à droite) et créer un curseur pour la base de données SQLite. Nous avons vu ceci dans de nombreux |
- | Maintenant, nous devons créer la routine qui crée la table avec l' | + | Maintenant, nous devons créer la routine qui crée la table avec l' |
====== 6 ====== | ====== 6 ====== | ||
Ligne 83: | Ligne 83: | ||
Comme vous pouvez le voir, nous créons un deuxième curseur pour ne pas risquer que le premier curseur contienne des données que nous devons conserver. Nous l' | Comme vous pouvez le voir, nous créons un deuxième curseur pour ne pas risquer que le premier curseur contienne des données que nous devons conserver. Nous l' | ||
- | Maintenant, nous créons trois colonnes de plus (ci-dessous) dans la table des jours de semaine, nommées « probabilité », « inférieur » et « supérieur ». Nous faisons cela en utilisant la commande SQL « ALTER TABLE». | + | Maintenant, nous créons trois colonnes de plus (ci-dessous) dans la table des jours de semaine, nommées « probabilité », « inférieur » et « supérieur ». Nous faisons cela en utilisant la commande SQL « ALTER TABLE ». |
- | L' | + | L' |
====== 7 ====== | ====== 7 ====== | ||
Ligne 94: | Ligne 94: | ||
c1 = cursor.execute(upquery)** | c1 = cursor.execute(upquery)** | ||
- | Il n'y a qu'un seul enregistrement retourné, mais nous faisons quand même une boucle for. Rappelez-vous de ce qui précède que le champ « NombreDeJoursDeSemaine » contient le nombre de jours au cours de l' | + | Il n'y a qu'un seul enregistrement retourné, mais nous faisons quand même une boucle for. Rappelez-vous de ce qui précède que le champ « NombreDeJoursDeSemaine » contient le nombre de jours au cours de l' |
upquery = " | upquery = " | ||
Ligne 127: | Ligne 127: | ||
Enfin, nous utilisons l' | Enfin, nous utilisons l' | ||
- | Nous nous retrouvons avec un nombre de paquet (pkgs), le décompte du nombre de jours auxquels | + | Nous nous retrouvons avec un nombre de paquet (pkgs), le décompte du nombre de jours où ce nombre de paquets est arrivé, une probabilité que cela se produise dans l' |
Si l'on additionne toutes les valeurs de probabilité de la table, on devrait trouver 1. | Si l'on additionne toutes les valeurs de probabilité de la table, on devrait trouver 1. | ||
Ligne 138: | Ligne 138: | ||
Until next time.** | Until next time.** | ||
- | Les valeurs supérieures et inférieures reflètent alors un nombre compris entre 0 et 1 qui mime la possibilité qu'un nombre aléatoire soit dans cette plage et qui va nous donner un nombre aléatoire de paquets. Ce nombre peut alors être utilisé pour une analyse statistique de ces données. Un exemple du « monde réel normal » serait de prévoir le nombre de voitures qui arrivent à un centre de lavage auto sur la base d' | + | Les valeurs supérieures et inférieures reflètent alors un nombre compris entre 0 et 1 qui mime la possibilité qu'un nombre aléatoire soit dans cette plage et qui va nous donner un nombre aléatoire de paquets. Ce nombre peut alors être utilisé pour une analyse statistique de ces données. Un exemple du « monde réel normal » serait de prévoir le nombre de voitures qui arrivent à un centre de lavage auto sur la base d' |
- | Le code pour les deux routines que nous avons présentées cette fois-ci est ici : http:// | + | Le code pour les deux routines que nous avons présentées cette fois-ci est ici : http:// |
À la prochaine fois. | À la prochaine fois. | ||
+ | |||
+ | ====== Encadrés sur fond orangés ====== | ||
+ | ===== page 11 en haut ===== | ||
+ | SELECT pkgs, Count(DOW) as NombreDeJoursDeSemaine FROM etude | ||
+ | WHERE (Holiday <> 1) | ||
+ | AND DayName in (" | ||
+ | GROUP BY pkgs | ||
+ | |||
+ | ===== page 11 en bas ===== | ||
+ | pkID - Integer, Primary Key, AutoIncrement | ||
+ | DOM - Integer - Jour du mois (1-31) | ||
+ | DOW - Integer - Jour de la semaine (1-7 (dimanche = 1, lundi = 2, etc.)) | ||
+ | pkgs - Integer - Nombre de colis reçus ce jour | ||
+ | DayName - TEXT - " | ||
+ | Holiday - Integer 0 ou 1 (Est-ce que ce jour est considéré comme congé ou pas) 1 pour oui | ||
+ | |||
+ | ===== page 12 en haut ===== | ||
+ | CREATE TABLE IF NOT EXISTS JoursDeSemaine AS | ||
+ | | ||
+ | WHERE (Holiday <> 1) | ||
+ | AND DayName in (" | ||
+ | GROUP BY pkgs | ||
+ | |||
+ | ===== page 12 au milieu haut ===== | ||
+ | def OpenDB(): | ||
+ | global connection | ||
+ | global curseur | ||
+ | connection = apsw.Connection(" | ||
+ | curseur = connection.cursor() | ||
+ | |||
+ | ===== page 12 au milieu bas ===== | ||
+ | addcolquery = 'ALTER TABLE JoursDeSemaine ADD COLUMN probability REAL' | ||
+ | cursor.execute(addcolquery) | ||
+ | addcolquery = 'ALTER TABLE JoursDeSemaine ADD COLUMN lower REAL' | ||
+ | cursor.execute(addcolquery) | ||
+ | addcolquery = 'ALTER TABLE JoursDeSemaine ADD COLUMN upper REAL' | ||
+ | cursor.execute(addcolquery) | ||
+ | |||
+ | ===== page 12 en bas ===== | ||
+ | def TraiterJoursDeSemaine(): | ||
+ | # on cree un second curseur pour mettre a jour la nouvelle table | ||
+ | | ||
+ | q1 = "DROP TABLE IF EXISTS JoursDeSemaine" | ||
+ | | ||
+ | query = ''' | ||
+ | Count(DOW) as NombreDeJoursDeSemaine FROM etude WHERE (Holiday <> 1) | ||
+ | AND DayName in | ||
+ | (" | ||
+ | GROUP BY pkgs''' | ||
+ | | ||
+ | |||
+ | ===== page 13 ===== | ||
+ | sumquery = " | ||
+ | tmp = curseur.execute(sumquery) | ||
+ | for t in tmp: | ||
+ | | ||
+ | |||
+ | prob = cod / float(DaySum) | ||
+ | if LastUpper != .0: | ||
+ | lower = LastUpper | ||
+ | | ||
+ | else: | ||
+ | lower = .0 | ||
+ | | ||
+ | |||
+ | nquery = ' | ||
+ | lower = %f, upper = %f WHERE pkgs = %d' \ | ||
+ | % (prob, | ||
+ | u = cursor2.execute(nquery) | ||
+ | # | ||
+ | # | ||
+ | End of TraiterJoursDeSemaine | ||
+ | # | ||
issue82/programmer_en_python.1405079286.txt.gz · Dernière modification : 2014/07/11 13:48 de auntiee