Manipulation lourde de CSV : quelle approche choisir ?
Bonjour à tous,
Je chercher à modifier à la chaine plusieurs CSV qui ont tous plus ou moins la même forme, mais qui sont gros et surtout, que je veux fortement modifier.
Avant de me lancer à coder, j'essaye d'imaginer la technique qui soit la plus pertinente et optimisée, sachant que je sens bien que vu la taille des CSV*et les manip demandées, ça va ramer sévère :D
En gros, j'ai 2 types de modifications à faire pour chaque CSV :
- Parcourir le nom des colonnes;
- en fonction du nom de la colonne (en faisant appel à des regexps, puisque les noms sont des codes souvent faits sur le même modèle), décider si je mets cette colonne dans un fichier A, dans un fichier B, ou si je ne m'en sers pas ;
- En fonction du nom de cette colonne, définir des codes à lui associer dans des colonnes à créer. Par exemple, pour une colonne intitulée C15_H_0019, je veux créer 3 colonnes :*annee à remplir de valeur 15, sexe à remplir de valeur H, et code à remplir de valeur 0019 ;
- Enfin, ajouter les valeurs de ces 3 colonne à mon fichier A ou B (selon ce qui a été retenu en étape 1) en les ajoutant à la suite du fichier, pas en ajoutant des colonnes.
Je ne sais pas si je suis très clair, mais en gros il s'agit de recoder et restructurer entièrement des fichiers de valeurs, en « copiant collant » des valeurs de colonnes à la suite des valeurs d'une colonne de valeurs unique, mais en y associant des codes en colonne pour pouvoir identifier d'où viennent ces valeurs et ce qu'elles signifient.
Pour ceux qui font un peu de base de données décisionnel, c'est pour créer une table de fait et des clés pour des tables de dimension.
Ça fait longtemps que j'ai pas remis les mains dans du python, et j'avais pas un très grand niveau non plus, surtout sur de la manipulation de strings et de csv, du coup je ne sais pas trop comment m'y prendre efficacement.
Par exemple, est-ce que j'ai intérêt à faire ça en passant par du dictionnaire, pour plus facilement manipuler les valeurs de chaque colonne ?
Est-ce que j'ai intérêt, pour chaque colonne, dès lors que je sais dans quel fichier output l'envoyer, à copier les valeurs uniques dans le fichier, puis dans ce fichier final à y écrire les codes associés dans les colonnes complémentaires, ou bien à déjà créer ces colonnes en mémoire ou dans le fichier initial puis à copier l'ensemble dans le fichier final ?
Bref, je prends toutes les réflexions et bonnes idées !
Merci.