Soucis de concaténation de fichier CSV
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 :D).
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.
Code:
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 d'un fichier bien pris en charge:
Code:
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- |
Ci-dessous les résultats du print du fichier problématique:
Code:
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 |
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.
Je vous remercie d'avance pour vos suggestions.