Python에서 한 줄의 csv 데이터를 읽는 방법은 무엇입니까?


89

다음과 같이 python을 사용하여 csv 데이터를 읽는 많은 예제가 있습니다.

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

한 줄의 데이터 만 읽고 다양한 변수에 입력하고 싶습니다. 어떻게하나요? 나는 모든 곳에서 작동하는 예를 찾았습니다.

내 코드는 i에 대한 값만 검색하고 다른 값은 검색하지 않습니다.

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])

csv의 구조는 무엇입니까? row독자를 반복 할 때는 무엇입니까 ?
dm03514 2013-06-23

답변:


141

csv 파일의 첫 번째 행만 읽으려면 next()리더 개체에서 사용 합니다.

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)

또는 :

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

38

다음과 같이 첫 번째 행만 얻을 수 있습니다.

with open('some.csv', newline='') as f:
  csv_reader = csv.reader(f)
  csv_headings = next(csv_reader)
  first_line = next(csv_reader)

2
아마도 "with open ( 'csv_file', 'r')"을 f : csv_reader = csv.reader (f) ... "로 추가하는 것이 좋습니다.
Sanchit

23

Pandas 라이브러리를 사용하여 방대한 데이터 세트에서 처음 몇 줄을 읽을 수 있습니다.

import pandas as pd

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

nrows 매개 변수에서 읽을 행 수를 언급 할 수 있습니다.


13

로부터 파이썬 문서 :

모듈이 문자열 구문 분석을 직접 지원하지는 않지만 쉽게 수행 할 수 있습니다.

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

문자열 데이터를 싱글 톤 목록에 놓기 만하면됩니다.


8

csv 파일에서 행을 가져 오는 간단한 방법

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

3
python3에서이 작업을하려면, 단지 'RB'의 'B'제거
리키 Avina

1
이것은 실제로 delimiter='.'.
suvtfopw

1
포스터 질문에 답하려면 break뒤에 a 를 추가 csvFileArray.append(row)하면 첫 번째 줄만 읽습니다.
StratusBase LLC

4

참고로, for첫 번째 행을 가져온 후 루프를 사용하여 나머지 파일을 가져올 수 있습니다.

with open('file.csv', newline='') as f:
    reader = csv.reader(f)
    row1 = next(reader)  # gets the first line
    for row in reader:
        print(row)       # prints rows 2 and onward

2

라인 범위를 인쇄하려면 (이 경우 라인 4에서 7까지)

import csv

with open('california_housing_test.csv') as csv_file:
    data = csv.reader(csv_file)
    for row in list(data)[4:7]:
        print(row)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.