1 réponse
[Dal]
- Messages postés
- 5473
- Date d'inscription
- mercredi 15 septembre 2004
- Statut
- Contributeur
- Dernière intervention
- 18 février 2021
Salut Kikumachi,
Tu devrais utiliser la bibliothèque
Disons que la colonne que tu veux trier est dénommée "col3", que ton fichier de départ est
Le script Python pour lire le fichier csv, le trier et sauvegarder une version triée serait :
Dal
Tu devrais utiliser la bibliothèque
pandasde Python.
Disons que la colonne que tu veux trier est dénommée "col3", que ton fichier de départ est
fichier.csv, que celui-ci comporte une première colonne dénommée "col1" et que le fichier trié doit être
new.csv.
Le script Python pour lire le fichier csv, le trier et sauvegarder une version triée serait :
import pandas df = pandas.read_csv('fichier.csv', index_col='col1') df = df.sort_values(by=['col3'], ascending=True) df.to_csv('new.csv')
Dal
Je l'ai fait tourner et c'est bon, merci beaucoup pour votre aide !
effectivement, par défaut, pandas utilise le délimiteur virgule pour le format CSV (CSV signifiant d'ailleurs "comma separated values")
Après, une autre question que je me pose : est-il possible de réaliser plusieurs tris de façon successive ?
Par exemple, vous pouvez observer que j'ai une colonne avec des valeurs temporelles (la colonne "DATE", remplie avec des sortes de timestamps). Si je voulais par exemple trier par ordre croissant d'identifiant, et que chaque groupe de lignes associé à un identifiant soit trié par ordre chronologique (timestamp croissant), devrais-je procéder de la façon suivante ?
- Faire un script capable de trier par ordre chronologique pour tous les identifiants et avoir un fichier trié par timestamp croissant, mais avec des identifiants mélangés
- Refaire un tri avec le script utilisé, de façon à ce que les lignes soient retriées par identifiant croissant tout en préservant implicitement le tri chronologique.
Merci d'avance
Comme cela :