131 votes

Comment ignorer la première ligne de données lors du traitement de données CSV ?

Je demande à Python d'imprimer le nombre minimum d'une colonne de données CSV, mais la première ligne est le numéro de la colonne, et je ne veux pas que Python prenne en compte la première ligne. Comment puis-je faire en sorte que Python ignore la première ligne ?

Voici le code jusqu'à présent :

import csv

with open('all16.csv', 'rb') as inf:
    incsv = csv.reader(inf)
    column = 1                
    datatype = float          
    data = (datatype(column) for row in incsv)   
    least_value = min(data)

print least_value

Pourriez-vous également expliquer ce que vous faites, et pas seulement donner le code ? Je suis très novice en Python et je voudrais être sûr de tout comprendre.

0voto

Karel Adams Points 78

J'utiliserais queue pour se débarrasser de la première ligne indésirable :

tail -n +2 $INFIL | whatever_script.py

0voto

the curious mind Points 379

Ajoutez simplement [1 :]

exemple ci-dessous :

data = pd.read_csv("/Users/xyz/Desktop/xyxData/xyz.csv", sep=',', header=None)**[1:]**

qui fonctionne pour moi en iPython

0voto

Christophe Roussy Points 2347

Python 3.X

Traite la nomenclature UTF8 + HEADER

C'était assez frustrant que le csv n'a pas pu obtenir facilement l'en-tête, il y a aussi un bug avec le BOM UTF-8 (premier caractère du fichier). Cela fonctionne pour moi en utilisant uniquement le csv module :

import csv

def read_csv(self, csv_path, delimiter):
    with open(csv_path, newline='', encoding='utf-8') as f:
        # https://bugs.python.org/issue7185
        # Remove UTF8 BOM.
        txt = f.read()[1:]

    # Remove header line.
    header = txt.splitlines()[:1]
    lines = txt.splitlines()[1:]

    # Convert to list.
    csv_rows = list(csv.reader(lines, delimiter=delimiter))

    for row in csv_rows:
        value = row[INDEX_HERE]

0voto

Smaurya Points 21

Une solution simple consiste à utiliser csv.DictReader().

import csv

def read_csv(file): with open(file, 'r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row["column_name"])  # Replace the name of column header.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X