C15.3 : Fusions de deux séries de données
Réunion de deux tables
Définition
On parle de la réunion de deux tables lorsqu'on souhaite réunir les données de deux tables qui ont des attributs communs.
Exemple
On dispose de deux fichiers csv.
• Le premier correspondant au calendrier des saisons des légumes : legumes.csv.
| Nom | Janvier | Février | Mars | Avril | Mai | Juin | Juillet | Août | Septembre | Octobre | Novembre | Décembre |
| Artichauts | 1 | 1 | 1 | |||||||||
| Asperges | 1 | 1 | 1 | 1 | ||||||||
| Aubergines | 1 | 1 | 1 | 1 | 1 | |||||||
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
• Le deuxième est similaire et correspond au calendrier des saisons des fruits : fruits.csv
On souhaite réunir les deux tables en ajoutant l'attribut 'Type' qui permet de savoir si on a un fruit ou un légume.
Mise en pratique
Proposer un programme qui permet :
- - de charger les deux fichiers dans deux listes de dictionnaires,
- - de réunir les deux listes en une seule qui corresponde à la table souhaitée.
Jointure de deux tables
Définition
On parle de jointure de deux tables lorsqu'on souhaite combiner les données de deux tables sur le critère d'un attribut en commun.
Exemple
On dispose de deux fichiers csv correspondant aux tables suivantes :
• Population des Haut-de-France par département en 2017 : population_hdf.csv
| code | population |
| 02 | 534490 |
| 59 | 2604361 |
| 60 | 824503 |
| 62 | 1468018 |
| 80 | 572443 |
• Correspondance des numéros et des noms de départements : departements.csv
| code | nom |
| 01 | Ain |
| 02 | Aisne |
| 03 | Allier |
| ... | ... |
On souhaite obtenir une seule table, l'attribut commun étant le code du département :
| dept_code | dept_nom | population |
| 02 | Aisne | 534490 |
| 59 | Nord | 2604361 |
| 60 | Oise | 824503 |
| 62 | Pas-de-Calais | 1468018 |
| 80 | Somme | 572443 |
Mise en pratique
Proposer un programme qui permet :
- - de charger les deux fichiers dans deux listes de dictionnaires,
- - de faire la jointure des deux listes à partir de l'attribut dept_code afin d'obtenir la table souhaitée.