CSV 파일을 읽는 방법 Python (모듈, Pandas 예제)
.CSV 파일이란?
A CSV 파일 특정 구조를 사용하여 표 형식의 데이터를 정렬하는 간단한 유형의 일반 텍스트 파일입니다. CSV 파일의 표준 형식은 줄 바꿈이 각 행을 종료하여 다음 행을 시작하고 각 열이 행 내에서 쉼표로 구분되는 행 및 열 데이터로 정의됩니다.
CSV는 작고 단순하며 일반적이기 때문에 데이터 교환을 위한 일반적인 형식입니다. 많은 온라인 서비스에서는 사용자가 웹사이트의 표 형식 데이터를 CSV 파일로 내보낼 수 있습니다. CSV 파일은 Excel로 열리며 거의 모든 데이터베이스에는 CSV 파일에서 가져올 수 있는 도구가 있습니다.
CSV 샘플 파일
테이블 형태의 데이터는 CSV(쉼표로 구분된 값)라고도 합니다. 문자 그대로 "쉼표로 구분된 값"입니다. 이는 표 형식의 데이터를 표시하기 위한 텍스트 형식입니다. 파일의 각 줄은 테이블의 한 줄입니다. 개별 열의 값은 구분 기호(쉼표(,), 세미콜론(;) 또는 기타 기호)로 구분됩니다. CSV는 다음을 통해 쉽게 읽고 처리할 수 있습니다. Python.
다음 표를 고려하십시오.
테이블 데이터
프로그래밍 언어 | 에 의해 설계된 | 출연 한 | 확장 |
---|---|---|---|
Python | 귀도 반 로섬 | 1991 | .py |
Java | 제임스 고슬링 | 1995 | .자바 |
C++ | 비얀 스트로스트 러브 | 1983 | .cpp |
이 테이블을 아래와 같이 csv로 표현할 수 있습니다.
CSV 데이터
프로그래밍 언어, 설계자, 등장, 확장
Python, 귀도 반 로섬, 1991, .py
Java, 제임스 고슬링, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp
보시다시피 각 행은 새 줄이고 각 열은 쉼표로 구분됩니다. 이는 CSV 파일의 모양에 대한 예입니다.
Python CSV 모듈
Python CSV 파일을 처리하기 위한 CSV 모듈을 제공합니다. 데이터를 읽고 쓰려면 CSV 행을 반복해야 합니다. 지정된 열에서 데이터를 가져오려면 분할 방법을 사용해야 합니다.
CSV 모듈 기능
CSV 모듈 설명서에서 다음과 같은 기능을 찾을 수 있습니다.
- csv.field_size_limit – 최대 필드 크기를 반환합니다.
- csv.get_dialect – 이름과 연관된 방언을 가져옵니다.
- csv.list_dialects – 등록된 모든 방언을 표시합니다.
- csv.reader – csv 파일에서 데이터를 읽습니다.
- csv.register_dialect – 방언을 이름과 연결
- csv.writer – csv 파일에 데이터 쓰기
- csv.unregister_dialect – 방언 레지스트리 이름과 연관된 방언을 삭제합니다.
- csv.QUOTE_ALL – 유형에 관계없이 모든 것을 인용하십시오.
- csv.QUOTE_MINIMAL – 특수 문자가 포함된 인용 필드
- csv.QUOTE_NONNUMERIC – 숫자 값이 아닌 모든 필드를 인용합니다.
- csv.QUOTE_NONE – 출력 시 아무 것도 인용하지 마세요.
이 튜토리얼에서는 CSV 파일의 데이터를 편집, 수정 및 조작할 수 있는 리더 및 라이터 기능에만 중점을 둘 것입니다.
CSV 파일을 읽는 방법 Python
다음은 CSV 파일을 읽는 단계입니다. Python.
단계 1) CSV 파일에서 데이터를 읽으려면 리더 기능을 사용하여 리더 개체를 생성해야 합니다.
판독기 기능은 파일의 각 행을 가져와 모든 열의 목록을 작성하도록 개발되었습니다. 그런 다음 변수 데이터를 원하는 열을 선택해야 합니다.
실제보다 훨씬 더 복잡하게 들립니다. 이것을 살펴보자 Python CSV 파일을 읽는 코드를 사용하면 csv 파일로 작업하는 것이 그리 어렵지 않다는 것을 알게 될 것입니다.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
단계 2) 위의 프로그램을 실행하면 출력은 다음과 같습니다.
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
CSV 파일을 사전으로 읽는 방법 Python
DictReader를 사용하여 CSV 파일을 읽을 수도 있습니다. 결과는 헤더 행이 키이고 다른 행이 값인 사전으로 해석됩니다.
다음 코드를 고려해보세요
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
이 코드의 결과는 다음과 같습니다.
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')]) OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
그리고 CSV 파일에서 데이터를 읽는 이 방법은 이전 방법보다 훨씬 쉽습니다. 그러나 이것이 데이터를 읽는 최선의 방법은 아닙니다.
CSV 파일을 작성하는 방법 Python
CSV 파일을 작성하는 방법은 다음과 같습니다. Python:
CSV 파일에 저장하고 싶은 데이터 세트가 있는 경우에는writer() 함수를 사용해야 합니다. 행(라인)에 걸쳐 데이터를 반복하려면 writerow() 함수를 사용해야 합니다.
다음 예를 고려하세요. 우리는 구분 기호가 아포스트로피인 파일 "writeData.csv"에 데이터를 씁니다.
#import necessary modules import csv with open('X:\writeData.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #way to write to csv file writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
csv 파일의 결과는 다음과 같습니다.
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Pandas를 사용하여 CSV 파일 읽기
Pandas는 CSV를 가져올 수 있는 오픈소스 라이브러리입니다. Python 그리고 데이터 조작을 수행합니다. Pandas는 데이터를 생성, 조작 및 삭제하는 쉬운 방법을 제공합니다.
pip install pandas 명령을 사용하여 pandas 라이브러리를 설치해야 합니다. ~ 안에 Windows, 터미널의 Linux에 있는 동안 명령 프롬프트에서 이 명령을 실행합니다.
CSV를 Pandas DataFrame으로 읽는 것은 매우 빠르고 쉽습니다.
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
결과 CSV 팬더 읽기 예:
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
매우 유용한 라이브러리. 단 세 줄의 코드만으로 이전과 동일한 결과를 얻을 수 있습니다. Pandas는 CSV의 첫 번째 줄에 열 이름이 포함되어 있다는 것을 알고 있으며 이를 자동으로 사용합니다.
Pandas를 사용하여 CSV 파일 작성
판다스로 CSV 파일에 쓰는 것은 읽는 것만큼 쉽습니다. 여기서 당신은 그것에 대해 확신할 수 있습니다. 먼저 다음을 기반으로 DataFrame을 만들어야 합니다. Python CSV 코드에 씁니다.
from pandas import DataFrame C = {'Programming language': ['Python','Java', 'C++'], 'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], 'Appeared': ['1991', '1995', '1985'], 'Extension': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension']) export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
다음은 출력입니다.
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
그리고 지정된 위치에 CSV 파일이 생성됩니다.
결론
그럼, 이제 'csv' 메서드를 사용하는 방법과 CSV 형식으로 데이터를 읽고 쓰는 방법을 알게 되었습니다. CSV 파일은 읽고 관리하기 쉽고 크기가 작아 처리 및 전송이 비교적 빠르기 때문에 소프트웨어 애플리케이션에서 널리 사용됩니다.
csv 모듈은 쉽게 읽고 쓸 수 있는 다양한 함수와 클래스를 제공합니다. 공식을 보면 알 수 있다 Python 설명서를 보고 몇 가지 더 흥미로운 팁과 모듈을 찾아보세요. CSV는 데이터를 저장하고, 보고, 보내는 가장 좋은 방법입니다. 사실, 처음에 보이는 것만큼 배우기 어렵지 않습니다. 하지만 조금만 연습하면 마스터할 수 있을 겁니다.
Pandas는 CSV 파일을 읽는 훌륭한 대안입니다.
또한 ANTLR, PLY 및 PlyPlus와 같은 라이브러리를 사용하여 텍스트 파일을 구문 분석하는 다른 방법이 있습니다. 그들은 모두 강력한 구문 분석을 처리할 수 있으며 간단한 문자열 조작이 작동하지 않는 경우 사용할 수 있는 정규 표현식이 있습니다.