2013-06-23 14 views
39

Ci sono un sacco di esempi di dati lettura CSV utilizzando python, come questo:Come leggere una singola riga di dati csv in Python?

import csv 
with open('some.csv', newline='') as f: 
    reader = csv.reader(f) 
    for row in reader: 
    print(row) 

Ho solo voglia di leggere una riga di dati ed entrare in diverse variabili. Come lo faccio? Ho cercato ovunque un esempio funzionante.

Il mio codice recupera solo il valore per i, e nessuno degli altri valori

reader = csv.reader(csvfile, delimiter=',', quotechar='"') 
for row in reader: 
    i = int(row[0]) 
    a1 = int(row[1]) 
    b1 = int(row[2]) 
    c1 = int(row[2]) 
    x1 = int(row[2]) 
    y1 = int(row[2]) 
    z1 = int(row[2]) 
+0

qual è la struttura del csv? Cos'è 'row' quando si sta iterando attraverso il lettore? – dm03514

risposta

15

si potrebbe ottenere solo la prima fila come:

csv_reader = csv.reader(f) 
csv_headings = next(csv_reader) 
first_line = next(csv_reader) 
80

Per leggere solo la prima riga della il file csv usa next() sull'oggetto del lettore.

with open('some.csv', newline='') as f: 
    reader = csv.reader(f) 
    row1 = next(reader) # gets the first line 
    # now do something here 
    # if first row is the header, then you can do one more next() to get the next row: 
    # row2 = next(f) 

o:

with open('some.csv', newline='') as f: 
    reader = csv.reader(f) 
    for row in reader: 
    # do something here with `row` 
    break 
+0

@GavrielCohen perché? – Steve

+0

Errore mio, intendevo un'altra soluzione, mi spiace –

7

Dal Python documentation:

E mentre il modulo non supporta direttamente le stringhe di analisi, può facilmente essere fatto:

import csv 
for row in csv.reader(['one,two,three']): 
    print row 

Basta trascinare i dati delle stringhe in una lista di singleton.

11

È possibile utilizzare la libreria di Pandas per leggere le prime righe dall'enorme set di dati.

import pandas as pd 

data = pd.read_csv("names.csv", nrows=1) 

si può citare il numero di linee da leggere nel parametro nrows.

4

Il modo più semplice per ottenere qualsiasi riga nel file CSV

import csv 
csvfile = open('some.csv','rb') 
csvFileArray = [] 
for row in csv.reader(csvfile, delimiter = '.'): 
    csvFileArray.append(row) 
print(csvFileArray[0]) 
+0

Per far funzionare questo in python3, basta rimuovere la "b" in "rb" –