Pandas로 CSV 파일 다루기
데이터 분석에서 CSV(Comma-Separated Values) 파일은 가장 널리 사용되는 포맷 중 하나입니다. Pandas를 활용하면 CSV 파일을 손쉽게 읽고, 수정하고, 저장할 수 있습니다. 이번 포스팅에서는 Pandas로 CSV 파일을 다루는 방법에 대해 자세히 알아보겠습니다.
1. CSV 파일이란?
CSV 파일은 각 행이 쉼표(,)로 구분된 텍스트 파일로, 간단하면서도 데이터 저장 및 교환에 많이 활용됩니다. Excel, 데이터베이스, 웹 애플리케이션 등 다양한 환경에서 사용됩니다.
CSV 파일의 예시는 다음과 같습니다:
name,age,city
Alice,25,New York
Bob,30,Los Angeles
Charlie,35,Chicago
이제 Pandas를 이용해 CSV 파일을 다루는 방법을 살펴보겠습니다.
2. CSV 파일 읽기
Pandas에서는 pd.read_csv()
함수를 사용하여 CSV 파일을 DataFrame으로 불러올 수 있습니다.
기본적인 CSV 파일 읽기
import pandas as pd
df = pd.read_csv("data.csv")
print(df.head()) # 데이터의 처음 5개 행 출력
구분자가 다른 경우 (delimiter
옵션 사용)
CSV 파일에서 기본 구분자는 쉼표(,)지만, 세미콜론(;)이나 탭(\t) 등의 다른 구분자를 사용할 수도 있습니다.
df = pd.read_csv("data.csv", delimiter=';')
인코딩 문제 해결 (encoding
옵션 사용)
CSV 파일의 인코딩 방식이 다를 경우, encoding
옵션을 지정해야 합니다.
df = pd.read_csv("data.csv", encoding="utf-8") # 일반적인 UTF-8 인코딩
# df = pd.read_csv("data.csv", encoding="cp949") # 한글 인코딩(CP949)
특정 열을 인덱스로 지정하기 (index_col
옵션 사용)
df = pd.read_csv("data.csv", index_col="name")
3. CSV 파일 저장하기
DataFrame을 CSV 파일로 저장할 때는 to_csv()
메서드를 사용합니다.
기본적인 CSV 파일 저장
df.to_csv("output.csv")
특정 구분자로 저장하기
쉼표 대신 다른 구분자를 사용할 수도 있습니다.
df.to_csv("output.csv", sep=';')
인덱스 제외하고 저장하기 (index=False
옵션 사용)
df.to_csv("output.csv", index=False)
특정 열만 저장하기 (columns
옵션 사용)
df.to_csv("output.csv", columns=["name", "age"], index=False)
4. 대용량 CSV 파일 처리
데이터가 크면 read_csv()
를 사용할 때 chunksize
옵션을 활용하면 메모리 부담을 줄일 수 있습니다.
chunk_size = 1000 # 한 번에 1000개 행씩 읽기
for chunk in pd.read_csv("large_data.csv", chunksize=chunk_size):
print(chunk.shape)
또한, to_csv()
에서 압축하여 저장할 수도 있습니다.
df.to_csv("compressed.csv.gz", compression='gzip')
5. CSV 파일 예제 다루기
아래는 CSV 파일을 읽고, 데이터를 수정한 후 저장하는 예제입니다.
# CSV 파일 읽기
df = pd.read_csv("data.csv")
# 새로운 열 추가
df["salary"] = [50000, 60000, 70000]
# 특정 행 필터링
df_filtered = df[df["age"] > 28]
# 수정된 데이터 저장
df_filtered.to_csv("filtered_data.csv", index=False)
이처럼 Pandas를 사용하면 CSV 파일을 효율적으로 다룰 수 있습니다.
6. 마무리
이번 포스팅에서는 Pandas를 활용하여 CSV 파일을 읽고, 수정하고, 저장하는 다양한 방법을 살펴보았습니다. Pandas의 강력한 기능을 활용하면 CSV 파일을 손쉽게 다룰 수 있으며, 대용량 데이터를 처리하는 방법도 유용하게 사용할 수 있습니다.
'Python > Pandas' 카테고리의 다른 글
JSON 파일 포맷 다루기 (0) | 2025.09.28 |
---|---|
Pandas로 Excel 파일 다루기 (0) | 2025.09.27 |
Series와 DataFrame의 차이 및 기본 생성 방법 (0) | 2025.09.25 |
Pandas란? 데이터 분석을 위한 필수 라이브러리 (0) | 2025.09.24 |