프로그래밍/파이썬

파이썬 CSV 파일 읽기

에이티에스 2023. 6. 28. 11:17
728x90

CSV는 "쉼표로 구분된 값"의 약자로, 데이터베이스 또는 스프레드시트와 같은 테이블 형식으로 데이터를 저장하는 데 사용되는 간단한 파일 형식입니다 .

이 파일은 일반 텍스트 파일로, 실제 텍스트 데이터(인쇄 가능한 ASCII 또는 유니코드)만 포함할 수 있으며 데이터 교환을 위한 표준 형식을 가지고 있습니다.

CSV 파일이 Excel 시트에 열리고 행 및 열 데이터가 표준 형식을 정의합니다.

 

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 라이브러리는 CSV 파일의 읽기 및 쓰기 기능을 모두 제공합니다. 먼저 Python의 내장 open() 함수를 사용하여 csv 모듈을 가져오고 csv 파일을 엽니다. Python은 csv 파일을 읽는 데 사용되는 csv.reader() 모듈을 제공합니다. 파일의 각 행을 사용하여 모든 열 목록을 만듭니다.

쉼표(,)로 구분된 데이터를 포함하는 myfile.txt이라는 이름의 텍스트 파일을 가져왔습니다. 

 

csv 파일

name,department,birthday month

Parker,Accounting, November

Smith,IT,March

 

예 1 :

import csv #importing csv library

with open('myfile.txt') as csv_file: #open text file named myfile

    csv_reader = csv.reader(csv_file, delimiter=',')

    line_count = 0

    for row in csv_reader:

        if line_count == 0:

            print(f'Column names are {", ".join(row)}')

            line_count += 1

        else:

            print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')

            line_count += 1

    print(f'Processed {line_count} lines.')

출력:

The Column names are  name, department, birthday month
Parker works in the Accounting department, and was born in November.
Smith works in the IT department, and was born in March.
In the above program, the first-row returns the column name, which is handled in a specific way. 

 

CSV를 Dictionary로 읽기

위의 코드에서 판독기 개체는 개별 문자열 요소의 목록을 처리합니다. 처리하는 대신 CSV 데이터를 Dictionary에서 직접 읽을 수도 있습니다.

다시 myfile.txt 다음과 같이 가져옵니다.

 

CSV 파일

name,department,birthday month

Anubhav,CS,November

Himanshu,IT,March

예-2

import csv # importing csv library

with open('myfile.txt', mode='r') as csv_file:

    csv_reader = csv.DictReader(csv_file)

    line_count = 0

    for row in csv_reader:

        if line_count == 0:

            print(f'The Column names are {", ".join(row)}')

            line_count += 1

        print(f'\t{row["name"]} belongs to the {row["department"]} department, and was born in {row["birthday month"]}.')

        line_count += 1

    print(f'Processed {line_count} lines.')

출력:

열 이름은 이름, 부서, 생일의 달

Anubhav는 CS 부서에 속해 있으며 11 월에 태어났습니다.

Himanshu는 IT 부서에 속해 있으며 3 월에 태어났습니다.

 

Pandas로 CSV 파일 읽기

Pandas는 데이터 분석에 사용되는 Python 라이브러리입니다. Numpy 라이브러리의 맨 위에 구축되어 있으며 매우 최적화되어 있습니다. CSV 파일을 팬더로 읽기 위해 데이터를 저장할 데이터 프레임을 만듭니다.

우리는 분석하고 CSV 파일을 읽기 위해 많은 줄의 코드를 쓸 필요가 없습니다. 여기 우리는 studata라는 파일을 가지고 있습니다.txt - 학생의 데이터를 포함합니다.

 

Name, Class, Admission date,
Saurabh 8th 12/07/2013
Suman 9th 10/07/2013
Ankita 8th 20/08/2013
Samrat 10th 01/08/2013
Anubhav 6th 01/08/2014
Apeksha 9th 02/08/2014

 

예-3

import pandas
 df = pandas.read_csv('studata.txt')
 print(df)

728x90
반응형
그리드형