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 :

Manipulation de fichiers csv


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Manipulation de fichiers csv
    Bonjour les gars,

    C'est mon premier post ici, j'espere que je suis au bon endroit. Je suis debutant avec Python et j'en ai besoin d'aider tres urgent. Voici le probleme:

    J'au un fichier CSV avec plusieurs colonnes et lignes. Je lis le fichier comme suit

    in_csv = pd.read_csv(inputFileName.csv)
    voici le format general des colonnes

    Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y

    Parmi les lignes, certaines ont des valeurs dans Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y (En plus des premieres colonnes (juska la fin des "..."). D'autres, ont des valeurs seulement dans Def1, Def_1x,Def_1y. Je veux le fichier de sorti csv ayant comme suit:
    1. Les lignes ont ces collonnes Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y (pas deDef2,Def_2x,Def_2y)
    2. Si ligne_i dans input csv n'a aucune valeur dans Def_2x,Def_2y (colonnes vides), la ligne entiere est copiee dans output csv (sans les 3 dernieres colonnes).
    3. Si ligne_j dans input csv a des valeurs dans Def_2x,Def_2y (colonnes non vides), la ligne doit etre fragmentee en deux lignes (consecutives) dans output csv. Une ligne avec Def1, Def_1x,Def_1y et une seconde ligne avec les valeurs dans Def2,Def_2x,Def_2y copiee vers Def1, Def_1x,Def_1y dans output csv
    4. L'ordre des lignes doit rester intacte

    exemple input:

    Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y
    A1,B1,C1,....,a,0.2,0.3,,,
    A2,B2,C2,.....,b,0.4,0.5,b,0.6,0.7
    A3,B3,C3,.....,b,0.8,0.9,,,

    Output:

    Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y
    A1,B1,C1,....,a,0.2,0.3
    A2,B2,C2,.....,b,0.4,0.5
    A2,B2,C2,.....,b,0.6,0.7
    A3,B3,C3,.....,b,0.8,0.9


    Si je peux avoit une colonne supplementaire, RANK, comme suit, ca serai tres genial. Cette RANK est simplement tojours=1 pour les lignes non fragmentees (donc a valeurs vides dans les 3 dernieres colonnes) et egale a 1:2 respectivement pour les lignes fragmentes en deux/

    Col1,Col2,Col3,JK,KK,...,RANK,Def1, Def_1x,Def_1y
    A1,B1,C1,....,1,a,0.2,0.3
    A2,B2,C2,.....,1,b,0.4,0.5
    A2,B2,C2,.....,2,b,0.6,0.7
    A3,B3,C3,.....,1,b,0.8,0.9


    Merci beaucoup

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je vois beaucoup ont consulte le message mais pas de reponse. Comme c'est la premiere fois que je publie ici, SVP, dites moi si ce n'est pas le bon endroit pour publier ceci. Peut etre ca doti etre dans une autre section de ce groupe.

    Merci infiniment


    Citation Envoyé par BsMoh Voir le message
    Bonjour les gars,

    C'est mon premier post ici, j'espere que je suis au bon endroit. Je suis debutant avec Python et j'en ai besoin d'aider tres urgent. Voici le probleme:

    J'au un fichier CSV avec plusieurs colonnes et lignes. Je lis le fichier comme suit

    in_csv = pd.read_csv(inputFileName.csv)
    voici le format general des colonnes

    Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y

    Parmi les lignes, certaines ont des valeurs dans Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y (En plus des premieres colonnes (juska la fin des "..."). D'autres, ont des valeurs seulement dans Def1, Def_1x,Def_1y. Je veux le fichier de sorti csv ayant comme suit:
    1. Les lignes ont ces collonnes Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y (pas deDef2,Def_2x,Def_2y)
    2. Si ligne_i dans input csv n'a aucune valeur dans Def_2x,Def_2y (colonnes vides), la ligne entiere est copiee dans output csv (sans les 3 dernieres colonnes).
    3. Si ligne_j dans input csv a des valeurs dans Def_2x,Def_2y (colonnes non vides), la ligne doit etre fragmentee en deux lignes (consecutives) dans output csv. Une ligne avec Def1, Def_1x,Def_1y et une seconde ligne avec les valeurs dans Def2,Def_2x,Def_2y copiee vers Def1, Def_1x,Def_1y dans output csv
    4. L'ordre des lignes doit rester intacte

    exemple input:

    Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y
    A1,B1,C1,....,a,0.2,0.3,,,
    A2,B2,C2,.....,b,0.4,0.5,b,0.6,0.7
    A3,B3,C3,.....,b,0.8,0.9,,,

    Output:

    Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y
    A1,B1,C1,....,a,0.2,0.3
    A2,B2,C2,.....,b,0.4,0.5
    A2,B2,C2,.....,b,0.6,0.7
    A3,B3,C3,.....,b,0.8,0.9


    Si je peux avoit une colonne supplementaire, RANK, comme suit, ca serai tres genial. Cette RANK est simplement tojours=1 pour les lignes non fragmentees (donc a valeurs vides dans les 3 dernieres colonnes) et egale a 1:2 respectivement pour les lignes fragmentes en deux/

    Col1,Col2,Col3,JK,KK,...,RANK,Def1, Def_1x,Def_1y
    A1,B1,C1,....,1,a,0.2,0.3
    A2,B2,C2,.....,1,b,0.4,0.5
    A2,B2,C2,.....,2,b,0.6,0.7
    A3,B3,C3,.....,1,b,0.8,0.9


    Merci beaucoup

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 355
    Points : 36 883
    Points
    36 883
    Par défaut
    Citation Envoyé par BsMoh Voir le message
    Je vois beaucoup ont consulte le message mais pas de reponse. Comme c'est la premiere fois que je publie ici, SVP, dites moi si ce n'est pas le bon endroit pour publier ceci. Peut etre ca doti etre dans une autre section de ce groupe.
    C'est un forum de développeur. Si vous ne postez pas un minimum de code sans raconter les difficultés que vous rencontrez, on peut penser que vous demandez de coder cela pour vous. On a généralement mieux à faire...

    - W

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    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 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BsMoh Voir le message
    Parmi les lignes, certaines ont des valeurs dans Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y (En plus des premieres colonnes (juska la fin des "..."). D'autres, ont des valeurs seulement dans Def1, Def_1x,Def_1y. Je veux le fichier de sorti csv ayant comme suit:
    1. Les lignes ont ces collonnes Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y (pas deDef2,Def_2x,Def_2y)
    2. Si ligne_i dans input csv n'a aucune valeur dans Def_2x,Def_2y (colonnes vides), la ligne entiere est copiee dans output csv (sans les 3 dernieres colonnes).
    3. Si ligne_j dans input csv a des valeurs dans Def_2x,Def_2y (colonnes non vides), la ligne doit etre fragmentee en deux lignes (consecutives) dans output csv. Une ligne avec Def1, Def_1x,Def_1y et une seconde ligne avec les valeurs dans Def2,Def_2x,Def_2y copiee vers Def1, Def_1x,Def_1y dans output csv
    Bonjour

    A priori ça ne semble pas compliqué
    1) lire la ligne du fichier input avec readline() (je ne sais pas ce que fait "read_csv()")
    2) découper la ligne avec split() ce qui donne un tableau
    3) checker la ou les valeurs du tableau pour produire le résultat attendu.
    Un truc de ce style devait donner un bon point de départ
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with open("input.csv", "r") as fp_in, open("output.csv", "w") as fp_out:
        for ligne in fp_in:
            tabCols=fp_in.split(",")
            if ...: fp_out.write(...)
            elif ... : fp_out.write(...)
            else: fp_out.write(...)
        # for   
    # with

    Citation Envoyé par BsMoh Voir le message
    4. L'ordre des lignes doit rester intacte
    C'est le comportement par défaut

Discussions similaires

  1. Ecrire un programme dédié à la manipulation des fichiers CSV
    Par Mateos_hiss dans le forum Général Java
    Réponses: 5
    Dernier message: 29/05/2016, 12h17
  2. Manipulation de fichier csv.
    Par FluffyQueeny dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2014, 08h19
  3. manipulation de fichier csv et txt en même temps, heelpe
    Par leila32 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/04/2013, 14h04
  4. Manipulation de fichier csv
    Par midgard30 dans le forum Général VBA
    Réponses: 2
    Dernier message: 12/08/2008, 06h35
  5. [CSV] Comment manipuler un fichier csv ?
    Par gorgoroth dans le forum Langage
    Réponses: 5
    Dernier message: 20/03/2008, 22h35

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