Je dois ajouter une marque de virgule dans toutes les lignes d'un fichier CSV, à l'exception de la dernière ligne de Python. J'ai essayé mais la marque des virgules est également ajoutée dans la dernière rangée. Comment rejeter la marque des virgules dans la dernière ligne du fichier CSV?
Je lis je lis le fichier CSV qui a presque 3 000 lignes et 2 colonnes (je suis ajouté à chaque ligne fusionnée (pour 2 colonnes) dans les marques de virgule inversée. J'ai essayé mais saint-rucking. Toute aide est profondément appréciée. < / p>
Le code: p>
3 Réponses :
import pandas as pd df = pd.read_csv('file.csv') df[:-1].to_csv('newFile', sep = ',') #adding the last row without separator: with open('newFile', 'a') as f: df[-1:].to_csv(f,header=f.tell()==0, sep = ' ') You can read more about the methods options https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html
Désolé, j'ai oublié la dernière ligne. Vous pouvez utiliser l'indexation du Dataframe.
Vous pouvez modifier votre remarquez que ce pour code> en boucle à quelque chose comme ceci:
Les lignes code> obtiennent un générateur, lequel implique qu'il ne peut être itéré qu'une seule fois. Changez-le à une compréhension de la liste, pourriez-vous avoir besoin d'utiliser des lignes code> code> plus d'une fois. P> p>
Je recommanderais de lire toutes les lignes, jetant le dernier, puis l'analyse du reste, comme ceci:
import numpy as np with open('file.csv', 'r') as fid: lines = fid.readlines() # discard the last row: lines = lines[:-1] # parse the rest into an array a = np.array( [line.strip('\n').split(',') for line in lines], dtype=float )