IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Soucis de concat�nation de fichier CSV


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    D�veloppeur COBOL
    Inscrit en
    Juin 2012
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur COBOL
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par d�faut 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 ).

    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 : 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 d'un fichier bien pris en charge:

    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-
    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
    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.

  2. #2
    Membre Expert

    Homme Profil pro
    Ing�nieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par d�faut
    2 pistes � explorer :
    1)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    filenames=filenames[-1]+filenames[:-1]
    Avec ca vous mettez le dernier fichier, au d�but de la liste. Est ce qu'il y a toujours un probl�me avec ce fichier (et donc d�s la premi�re it�ration), ou est ce que c'est toujours le dernier fichier de la liste qui pose probl�me ?
    2) Si � 1), c'est la 1�re option, alors �a peut venir du fichier d'entr�e lui m�me. Ouvrez le avec les outils de votre choix pour le comparer (excel par exemple, ou bien une biblioth�que de traitement de CSV dans un langage que vous ma). Il peut manquer des tabulations par exemple dans ce fichier, ce qui peut causer le d�calage.

    Quand on r�cup�re des donn�es comme ca sur la toile, on n'est jamais � l'abri qu'il y ait quelques h�t�rog�n�it�s.

  3. #3
    Candidat au Club
    Homme Profil pro
    D�veloppeur COBOL
    Inscrit en
    Juin 2012
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur COBOL
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Par d�faut
    Bonjour,

    merci pour votre r�ponse.

    Le soucis se produit m�me quand je n'utilise que le fichier en question. �a ne vient donc pas de la position dans l'ordre de concat�nation mais bien du fichier en lui m�me, qui doit avoir une particularit� ou alors un encodage CSV d�faillant ou autre.
    Le programme plante m�me sur ce fichier lorsque je tente de lire le contenu d'une ligne d'une des colonnes que je cherche � extraire.

    Du coup j'ai trouv� une petite parade pour contourner le probl�me.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
            try:
                test_ligne = concat_file_temp['etoiles_gagnantes_en_ordre_croissant'][0]
                concat_file = concat_file_temp[['boules_gagnantes_en_ordre_croissant', 'etoiles_gagnantes_en_ordre_croissant']]
            except:
                concat_file_temp['etoiles_gagnantes_en_ordre_croissant'] = concat_file_temp['boules_gagnantes_en_ordre_croissant']
                concat_file_temp['boules_gagnantes_en_ordre_croissant'] = concat_file_temp['etoile_2']            
                concat_file = concat_file_temp[['boules_gagnantes_en_ordre_croissant', 'etoiles_gagnantes_en_ordre_croissant']]
    Ce n'est pas vraiment p�renne mais bon en attendant, cela fera l'affaire.

    Toutefois je suis toujours preneur d'une solution plus propre

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 848
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 848
    Billets dans le blog
    1
    Par d�faut
    Bonjour
    Citation Envoy� par avoyez Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    	try:
    		...
    	except:
    		...
    Toutefois je suis toujours preneur d'une solution plus propre
    Tu devrais mieux cibler ton exception plut�t que de tout benner en vrac. D'autant plus que tu as le droit d'en cibler plusieurs d'un coup => except (X, Y, Z): ....
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [XL-2016] Concat�nation de fichiers csv pour op�rations
    Par Wenchetan dans le forum Macros et VBA Excel
    R�ponses: 5
    Dernier message: 30/04/2019, 12h28
  2. Concat�ner fichier CSV
    Par cyril383 dans le forum Scilab
    R�ponses: 4
    Dernier message: 11/06/2014, 14h57
  3. [PHP 5.2] souci lecture fichier csv
    Par pas30 dans le forum Langage
    R�ponses: 1
    Dernier message: 21/03/2012, 09h47
  4. Concat�nation de fichiers csv avec tri
    Par lfournial dans le forum G�n�ral Java
    R�ponses: 8
    Dernier message: 25/04/2008, 11h23
  5. Concat�nation de fichier csv avec ent�te
    Par MottetCCSF dans le forum Langage
    R�ponses: 1
    Dernier message: 19/12/2007, 20h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo