Bonjour,
Je suis développeur mainframe et je suis actuellement en auto-formation sur le langage python.
Pour m’entraîner, je suis entrain de développer un programme simple de web scrapping et de data-analyse afin de m'initier aux librairies bs et panda.
Pour donner des éléments de contexte, je scrap le site de la FDJ pour récupérer les archives de l'euromillion pour pouvoir faire des stats sur les numéros (je sais très bien que je ne deviendrai pas millionnaire mais cela m'amuse).
Je rencontre actuellement un problème que je ne parviens pas à résoudre, malgré de nombreuses recherches sur différents sites.
Mon programme récupère plusieurs fichiers csv que je cherche à concaténer. Ces fichiers n'ont pas le même nombre de colonnes mais chaque colonne est libellé de la même manière. Pour chaque fichier, je demande à mon programme d'effectuer une extraction des colonnes qui m'intéressent et de concaténer le résultat dans un fichier en sortie.
L'extraction et la concaténation semble bien s'effectuer sauf pour le dernier fichier. Lorsque j'ouvre ce fichier, les données sont bien positionnées mais lorsque je fais un print() du contenu de ce fichier, les données sont décalées (colonne A avec contenu de la colonne B et colonne C avec contenu de la colonne B). Je fais également ce constat quand j'ouvre mon fichier concaténer.
Je vous mets ci-dessous le code que j'ai utilisé pour réaliser ma concaténation. Pouvez-vous m'éclairer sur les cause de l'anomalie car je sèche complètement.
Ci-dessous les résultats du print d'un fichier bien pris en charge:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ## concaténation des fichiers filenames = find_csv_filenames("./fichiers") #récupération des fichiers csv du dossier concat_file_temp = pd.DataFrame() concat_file = pd.DataFrame() euromillion_finale = pd.DataFrame() for name in filenames: print(name) concat_file_temp = pd.read_csv("./fichiers/"+name,delimiter=';',engine='python') concat_file = concat_file_temp[['boules_gagnantes_en_ordre_croissant', 'etoiles_gagnantes_en_ordre_croissant']] print(concat_file) euromillion_finale = pd.concat([euromillion_finale,concat_file]) ## Ecriture des fusions de fichier euromillion_finale.to_csv("./fichiers_resultat/euromillion_finale.csv",index=False,header=True,sep=',')
Ci-dessous les résultats du print du fichier problématique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 boules_gagnantes_en_ordre_croissant etoiles_gagnantes_en_ordre_croissant 0 -11-16-20-22-28- -4-9- 1 -15-25-38-40-41- -1-2- ... 376 -7-13-39-47-50- -2-5- 377 -16-29-32-36-41- -7-9-
A la place des numéros de lignes, j'ai le contenu de la première colonne du fichier. De plus le résultat du print() n’apparaît pas de la même manière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 boules_gagnantes_en_ordre_croissant \ 2016078 -2-12- 2016079 -2-10- ... 2019016 -3-7- 2019017 -3-4- etoiles_gagnantes_en_ordre_croissant 2016078 0 2016079 0 ... 2019016 0 2019017 0
Je vous remercie d'avance pour vos suggestions.
Partager