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 :

Ordonner/ trier fichier csv


Sujet :

Python

  1. #1
    Membre confirmé
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 87
    Par défaut Ordonner/ trier fichier csv
    Bonjour,


    Je travaille sur des fichiers csv, je souhaite que la dernière colonne de ces fichiers soit trié à l'inverse c'est a dire que la dernière valeur soit dirigé vers la premiére ligne de la colonne.

    Par exemple:
    Col1[5,9,7,6,4,8,9]

    Et je souhaite créer une nouvelle colonne dans le sens inverse col2[9,8,4,6,7,9,5]

    J'ai tenté le code ci-dessous, mais il ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    df = pandas.read_csv('output.csv', index_col='col2')
    df = df.sort_values(by=['col3'], ascending=True)
    df.to_csv('output2.csv')

    Cela fait un long moment que n'ai pas programmé en langage python,la reprise est un peu difficile merci pour votre compréhension :-) ).

    Merci d'avance.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 723
    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 723
    Par défaut
    Salut,

    Citation Envoyé par Cerise22 Voir le message
    Cela fait un long moment que n'ai pas programmé en langage python,la reprise est un peu difficile merci pour votre compréhension :-) )
    Passer de [5,9,7,6,4,8,9] à [9,8,4,6,7,9,5], c'est plutôt inverser les valeurs que les ranger dans l'ordre (dé)croissant.

    Citation Envoyé par Cerise22 Voir le message
    Je travaille sur des fichiers csv, je souhaite que la dernière colonne de ces fichiers soit trié à l'inverse c'est a dire que la dernière valeur soit dirigé vers la premiére ligne de la colonne.
    D'accord mais une fois lu dans un dataframe Pandas, peu importe comment il a été construit.
    Et partant de de df = pd.DataFrame({'a': [5,9,7,6,4,8,9]}), la question devient comment ajouter une colonne b construite avec les valeurs inverses de la colonne a.

    Et à partir de là, vous avez suffisament de mots clefs pour chercher un peu sur Internet et y trouver (par exemple): df['b'] = df.a.values[::-1]

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 87
    Par défaut
    Bonjour,

    Merci pour votre retour.

    En effet, je souhaite inverser les valeurs.

    J'ai essayer de faire le programme pour inverser les valeurs d'une colonne (Pow) de mon fichier mais en vain...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    df = pandas.read_csv('C:\\Users\\test csv\\output.csv') #, index_col='col2')
    Pow2=df['Pow']
    #print (Pow2)
    Pow2=Pow2[::1]
    #Pow2.reverse()
    df.to_csv('C:\\Users\\test csv\\output2.csv')
    Pourriez-vous m'aider à y voir plus clair ?

    Merci beaucoup d'avance.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 723
    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 723
    Par défaut
    Salut,

    Citation Envoyé par Cerise22 Voir le message
    Pourriez-vous m'aider à y voir plus clair ?
    Si je vous suggère quelque chose et que je ne le retrouve pas dans le code que vous avez essayé, je ne peux pas grand chose pour vous.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 87
    Par défaut
    Solution trouvé!

    Merci à vous wiztricks

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    df = pandas.read_csv('C:\\Users\\Utilisateur général\\output.csv')
    Pow2=[]
    Pow2= df['Pow2']
    df['b'] = df.Pow2.values[::-1]
    df.to_csv('C:\\Users\\output3.csv')
    Maintenant je souhaite procéder de la même manière pour l'ensemble des mes fichiers csv.

    Avez-vous des idées comment procéder tout en en créant une fonction?

    C.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 723
    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 723
    Par défaut
    Salut,

    Citation Envoyé par Cerise22 Voir le message
    Avez-vous des idées comment procéder tout en en créant une fonction?
    Créer une fonction qui exécute ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    df = pandas.read_csv('C:\\Users\\Utilisateur général\\output.csv')
    Pow2=[]
    Pow2= df['Pow2']
    df['b'] = df.Pow2.values[::-1]
    df.to_csv('C:\\Users\\output3.csv')
    est enfantin (les tutos. sont là pour vous aider!).

    Le plus compliqué est de définir les paramètres à passer (pour traiter différents fichiers).
    Peut être le nom du fichier à lire, mais comment "calculer" l'emplacement et le nom du fichier à créer? çà dépend de vos besoins (et je ne suis pas dans votre tête).

    Cela fait, je vous ai déjà suggéré d'utiliser glob.glob... Vous avez plein d'exemples sur Internet si la documentation vous paraît indigeste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/04/2015, 10h07
  2. trier un fichier csv
    Par marco056 dans le forum Général Python
    Réponses: 14
    Dernier message: 10/04/2015, 01h28
  3. Trier fichier csv
    Par memento80 dans le forum Général Python
    Réponses: 7
    Dernier message: 31/10/2011, 11h56
  4. Trier le contenu d'un fichier .csv
    Par KiraX10A dans le forum C++
    Réponses: 9
    Dernier message: 18/09/2009, 16h37
  5. [CSV] Trier un fichier CSV
    Par arnaudperfect dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2008, 19h10

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