CSV 파일로 데이터 다루기

Plcb Archive·2024년 2월 5일
0

파이썬

목록 보기
13/22
post-custom-banner

CSV 파일

CSV(Comma-Separated Values) 파일은 테이블 형태의 데이터를 저장하는 데 널리 사용되는 파일 형식이다. 파이썬에서는 csv 모듈을 사용하여 CSV 파일을 쉽게 읽고 쓸 수 있다.

CSV 파일 읽기

CSV 파일을 읽기 위해서는 csv.reader를 사용한다. 이를 통해 파일의 각 행을 순회하며 데이터에 접근할 수 있다.

CSV 파일 읽기 예시

import csv

# CSV 파일 열기
with open('example.csv', newline='') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

이 코드는 example.csv 파일을 열고, 각 행을 순회하며 출력한다.

CSV 파일 쓰기

CSV 파일에 데이터를 쓰려면 csv.writer를 사용한다. 이를 통해 데이터를 쉼표로 구분된 형식으로 파일에 저장할 수 있다.

CSV 파일 쓰기 예시

import csv

# CSV 파일 쓰기
data = [['Name', 'Age'], ['Alice', 24], ['Bob', 22]]

with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

이 코드는 데이터를 output.csv 파일에 쓴다. 각 하위 리스트는 파일의 한 행을 나타낸다.

CSV DictReader와 DictWriter

csv.DictReadercsv.DictWriter는 딕셔너리 형태로 CSV 파일을 읽고 쓰는 데 사용된다. 이는 열 헤더를 키로 사용하여 데이터에 접근하기 쉽게 해준다.

CSV DictReader 예시

import csv

# CSV 파일을 딕셔너리로 읽기
with open('example.csv', newline='') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row['Name'], row['Age'])

이 코드는 각 행을 딕셔너리로 읽어, 'Name'과 'Age' 열의 값을 출력한다.

CSV DictWriter 예시

import csv

# 딕셔너리를 CSV 파일로 쓰기
data = [{'Name': 'Alice', 'Age': 24}, {'Name': 'Bob', 'Age': 22}]

with open('output.csv', 'w', newline='') as file:
    fieldnames = ['Name', 'Age']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    writer.writeheader()
    for row in data:
        writer.writerow(row)

이 코드는 딕셔너리 데이터를 output.csv 파일에 쓴다. writeheader 메서드는 열 헤더를 파일에 쓴다.

CSV 파일은 데이터 분석, 데이터 저장, 데이터 교환 등 다양한 용도로 사용되며, 파이썬의 csv 모듈은 이러한 작업을 간편하게 만들어준다.

CSV 파일과 데이터 처리

CSV 파일은 데이터 분석에서 자주 사용된다. pandas 같은 라이브러리와 함께 사용하면 데이터 처리 및 분석이 훨씬 간편해진다.

예시: Pandas를 사용하여 CSV 파일 읽고 처리하기

import pandas as pd

# Pandas로 CSV 파일 읽기
df = pd.read_csv('example.csv')

# 데이터 처리
print(df.head())  # 상위 5행 출력
print(df.describe())  # 기술통계 정보 출력

이러한 방식으로 CSV 파일을 다루면 데이터를 효율적으로 처리할 수 있으며, 데이터 과학 및 다양한 프로그래밍 프로젝트에 유용하게 활용될 수 있다.

post-custom-banner

0개의 댓글