59doit
[Python-Pandas] csv 파일 불러오기 본문
반응형
csv 파일을 불러오는 경우
import csv
pandas_read_table() 함수를 이용하여 대부분의 파일 형식을 불러 올 수 있다.
▷
변수 reader에 담기
f = open('pandas_dataset2/ex7.csv')
reader = csv.reader(f)
f
# <출력>
# <_io.TextIOWrapper name='pandas_dataset2/ex7.csv' mode='r' encoding='cp949'>
▷
큰 따옴표가 제거된 튜플
for line in reader:
print(line)
# <출력>
# ['a', 'b', 'c']
# ['1', '2', '3']
# ['1', '2', '3']
▷
with ; 실행문이 다 돌아가면 자동으로 닫기
with open('pandas_dataset2/ex7.csv') as f: lines = list(csv.reader(f))
# lines 에 리스트로 요소별로 담기
# 원하는 형태 저장
# 파일을 읽어 줄 단위 리스트로 저장
▷
헤더와 데이터 구분
header, values = lines[0], lines[1:]
# ['a', 'b', 'c']
# [['1', '2', '3'], ['1', '2', '3']]
전치해주는 zip(*values)이용 데이터 컬럼 사전
data_dict = {h: v for h, v in zip(header, zip(*values))}
data_dict
# <출력>
# {'a': ('1', '1'), 'b': ('2', '2'), 'c': ('3', '3')}
head 를 키로 놓고 dic
▷
구분자, 문자열을 둘러싸는 방법, 개행 문자
->csv.Dialect 를 상속받아 새로운 클래스를 정의해서 해결
class my_dialect(csv.Dialect):
lineterminator = '\n'
delimiter = ';'
quotechar = '"'
quoting = csv.QUOTE_MINIMAL
#클래스명 my_dialect / 받아오는것 csv.Dialect
▷
# reader = csv.reader(f, dialect=my_dialect)
reader = csv.reader('pandas_dataset2/ex7.csv', dialect=my_dialect)
▷
서브클래스를 정의하지 않고 csv.readr 에 키워드 인자로 각각의 csv 파일의 특징을 지정해서 전달해도 된다.
# reader = csv.reader(f, delimiter='|')
reader = csv.reader('pandas_dataset2/ex7.csv', delimiter='|')
▷
with open('mydata.csv', 'w') as f:
writer = csv.writer(f, dialect=my_dialect)
writer.writerow(('one', 'two', 'three'))
writer.writerow(('1', '2', '3'))
writer.writerow(('4', '5', '6'))
writer.writerow(('7', '8', '9'))
▷
pd.options.display.max_rows = None
반응형
'Programming > Python(파이썬)' 카테고리의 다른 글
[Python-Pandas] 치환 (0) | 2022.11.10 |
---|---|
[Python-Pandas] 결측치 (0) | 2022.11.10 |
[Python-Pandas] 파일경로설정 (0) | 2022.11.09 |
[Python-Pandas] 수학메서드 (0) | 2022.11.09 |
[Pandas] 넘파이에 의한 랜덤난수 (0) | 2022.11.08 |
Comments