Traitement fichier csv sous python
qadfz
-
Furansujean Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Furansujean Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà, j'ai un fichier csv (généré avec python) a traiter avec beaucoup de données. J'aimerais le modifier (ou créer un autre fichier csv) avec un code simple sous python pour avoir toutes les données en colonne (et ensuite les traiter sous excel). Du style, qu'il lise ligne par ligne mon fichier et que à chaque fois qu'il croise une virgule (mes éléments sont principalement séparés par une virgule) il fasse un retour à la ligne pour mettre l'élément suivant et ainsi de suite pour obtenir une même colonne de données exploitable sous excel.
Je n'ais pas un très bon niveau en programmation, et mes seules connaissances sont pour le calcul scientifique, du coup je comprends pas bien les différentes fonctions à utiliser qu'on peut trouver sur le net. Cependant, j'ai trouvé un code mais que je n'arrive pas à faire tourner car dans la boucle for je ne comprends par sur quoi il faut itérer (le "x", j'ai essayé en mettant "wr" mais il me dit : TypeError: '_csv.writer' object is not iterable) :
De ce fait, j'aimerais savoir si ce code suffit ou non (s'il est correct) et/ou si quelqu'un pourrait me proposer un code fonctionnel ou des pistes ?
Merci.
Voilà, j'ai un fichier csv (généré avec python) a traiter avec beaucoup de données. J'aimerais le modifier (ou créer un autre fichier csv) avec un code simple sous python pour avoir toutes les données en colonne (et ensuite les traiter sous excel). Du style, qu'il lise ligne par ligne mon fichier et que à chaque fois qu'il croise une virgule (mes éléments sont principalement séparés par une virgule) il fasse un retour à la ligne pour mettre l'élément suivant et ainsi de suite pour obtenir une même colonne de données exploitable sous excel.
Je n'ais pas un très bon niveau en programmation, et mes seules connaissances sont pour le calcul scientifique, du coup je comprends pas bien les différentes fonctions à utiliser qu'on peut trouver sur le net. Cependant, j'ai trouvé un code mais que je n'arrive pas à faire tourner car dans la boucle for je ne comprends par sur quoi il faut itérer (le "x", j'ai essayé en mettant "wr" mais il me dit : TypeError: '_csv.writer' object is not iterable) :
with open('ch4_adiabatic_C.4.1.csv', newline='') as csvfile: wr=csv.writer(csvfile, dialect='excel') for row in x: wr.writerow([row]) csv.output.close()
De ce fait, j'aimerais savoir si ce code suffit ou non (s'il est correct) et/ou si quelqu'un pourrait me proposer un code fonctionnel ou des pistes ?
Merci.
A voir également:
- Traitement fichier csv sous python
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
Bonsoir,
Si je comprends bien, vous souhaitez faire une transposition des lignes en colonnes.
Solution 1 :
Faire la transposition directement dans Excel :
https://support.microsoft.com/fr-fr/office/transposer-faire-pivoter-des-donn%c3%a9es-de-lignes-vers-des-colonnes-ou-inversement-3419f2e3-beab-4318-aae5-d0f862209744?ui=fr-fr&rs=fr-fr&ad=fr
Solution 2 :
Avec le module
Solution 3 :
Avec le module
Si je comprends bien, vous souhaitez faire une transposition des lignes en colonnes.
Solution 1 :
Faire la transposition directement dans Excel :
https://support.microsoft.com/fr-fr/office/transposer-faire-pivoter-des-donn%c3%a9es-de-lignes-vers-des-colonnes-ou-inversement-3419f2e3-beab-4318-aae5-d0f862209744?ui=fr-fr&rs=fr-fr&ad=fr
Solution 2 :
Avec le module
pandas:
import pandas as pd dataFrame = pd.read_csv('mon_fichier.csv') dataFrame_transposed = dataFrame.T dataFrame_transposed.to_csv('mon_fichier_transpose.csv',header=False)
Solution 3 :
Avec le module
csv:
import csv #------------------------ # lecture du fichier #------------------------ with open('mon_fichier.csv','r',newline='') as file_to_read: reader = csv.reader(file_to_read) lines_file_read = [] # parcours des lignes grâce à l'itérateur reader for row in reader: # on sauvegarde les lignes lines_file_read.append(row) print(row) number_of_rows = len(lines_file_read) #---------------------------------------------------------- # création d'un fichier csv qui transpose le fichier csv lu #---------------------------------------------------------- with open('mon_fichier_transpose.csv','w',newline='') as file_to_create: writer = csv.writer(file_to_create) # on lit le nombre de champs/colonnes dans la 1ère ligne, par exemple number_of_columns = len(lines_file_read[0]) for col in range(number_of_columns): new_line_from_col = [lines_file_read[line][col] for line in range(number_of_rows)] writer.writerow(new_line_from_col)