본문 바로가기
오픈소스를 위한 기초 상식

CSV 파일로 데이터 저장: 데이터 관리와 활용의 첫걸음

by 지나가는 프로도 2025. 2. 2.

CSV 저장의 기초

웹에서 수집한 데이터를 저장하고 활용하는 방법은 데이터 분석 작업에서 매우 중요합니다. 특히, CSV(Comma Separated Values) 파일은 구조화된 데이터를 저장하는 데 널리 사용되는 포맷으로, Pandas를 활용하면 데이터를 손쉽게 CSV 파일로 저장하고 불러올 수 있습니다. 이 글에서는 CSV 파일로 데이터를 저장하는 방법론과 실용적인 팁을 단계적으로 설명합니다.


 

1. CSV 파일이란 무엇인가?

CSV 파일은 데이터 행이 줄바꿈 문자로 구분되고, 각 열은 쉼표(,)로 분리된 텍스트 기반 파일 형식입니다. CSV 파일은 간단한 구조와 범용성을 갖추고 있어 다양한 환경에서 데이터를 교환하거나 저장하는 데 적합합니다.

CSV 파일의 주요 특징

  1. 경량화: 파일 크기가 작아 대량의 데이터를 효율적으로 저장 가능
  2. 호환성: Excel, Google Sheets, 데이터베이스 등 다양한 툴에서 쉽게 사용 가능
  3. 인간 가독성: 텍스트 편집기로 열어서 내용을 확인 가능

 

2. Pandas로 CSV 파일 저장하기

Pandas는 데이터프레임을 CSV 파일로 쉽게 저장할 수 있도록 to_csv() 메서드를 제공합니다. 아래는 기본적인 저장 과정을 단계별로 정리한 방법론입니다.

2.1 기본 저장 방법

Requests와 BeautifulSoup를 통해 수집한 데이터를 Pandas 데이터프레임으로 변환한 후, CSV 파일로 저장합니다:

더보기
import pandas as pd

# 예제 데이터프레임 생성
data = [
    {"title": "헤드라인 1", "link": "https://example.com/news1"},
    {"title": "헤드라인 2", "link": "https://example.com/news2"}
]
df = pd.DataFrame(data)

# CSV 파일로 저장
df.to_csv('headlines.csv', index=False)

코드 설명

  • df.to_csv():
    • 데이터프레임을 CSV 파일로 저장하는 메서드입니다.
    • index=False는 데이터프레임의 인덱스를 CSV 파일에 포함하지 않도록 설정합니다.

 

CSV 저장의 고급 옵션

CSV 파일을 저장할 때 상황에 따라 다양한 옵션을 활용할 수 있습니다.

3.1 열 이름 지정

CSV 파일의 열 이름을 변경하거나 원하는 순서로 저장할 수 있습니다.

더보기
# 특정 열 이름과 순서로 저장
df.to_csv('headlines_custom.csv', columns=['title', 'link'], index=False)
 
3.2 파일 인코딩 설정

다국어 데이터를 다룰 때, 파일 인코딩을 지정하여 데이터 손상을 방지합니다.

더보기
# UTF-8 인코딩으로 저장
df.to_csv('headlines_utf8.csv', index=False, encoding='utf-8')
 
3.3 구분자 변경

쉼표(,) 대신 다른 구분자를 사용하는 경우 sep 옵션을 설정합니다.

더보기
# 탭 구분자로 저장
df.to_csv('headlines_tab.tsv', index=False, sep='\t')

 

4. CSV 파일 저장 시 유의사항

  1. 파일 경로 설정:
    • 파일을 저장할 디렉토리가 존재하지 않으면 FileNotFoundError가 발생할 수 있습니다. 저장 전에 디렉토리가 존재하는지 확인하세요.
  2. 데이터 포맷 확인:
    • CSV로 저장하기 전에 데이터프레임의 데이터 타입과 포맷을 확인하세요. 예를 들어 날짜 데이터는 문자열로 저장되므로 적절히 변환하는 것이 중요합니다.
  3. 대량 데이터 처리:
    • 대량 데이터를 저장할 경우, 저장 속도를 높이기 위해 chunksize 옵션을 사용하거나 데이터를 분할하여 저장합니다.

 

실습

5. 실습: Requests로 수집한 데이터 저장

아래는 Requests와 Pandas를 사용하여 네이버 뉴스 헤드라인 데이터를 CSV 파일로 저장하는 예제입니다:

더보기

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 네이버 뉴스 데이터 수집
url = 'https://www.naver.com'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

# 헤드라인 데이터 추출
headlines = []
news_section = soup.find('div', class_='MediaNewsView-module__news_desc___a55yg')
if news_section:
    for item in news_section.find_all('a'):
        headlines.append({"title": itehttp://m.text.strip(), "link": item['href']})

# 데이터프레임 생성
df = pd.DataFrame(headlines)

# CSV 파일로 저장
df.to_csv('naver_headlines.csv', index=False, encoding='utf-8')

print("CSV 파일 저장 완료: naver_headlines.csv")


 

6. CSV 파일 저장의 활용 방안

6.1 분석 작업

저장된 CSV 파일은 Pandas의 read_csv() 메서드를 사용하여 다시 읽어와 다양한 분석 작업에 활용할 수 있습니다.

더보기

# CSV 파일 읽기
data = pd.read_csv('naver_headlines.csv')

# 데이터 확인
print(data.head())

# 데이터 분석 (예: 제목 길이 확인)
data['title_length'] = data['title'].apply(len)
print(data.sort_values(by='title_length', ascending=False).head())

6.2 데이터 시각화

CSV 파일 데이터를 Matplotlib, Seaborn 등과 같은 라이브러리를 활용하여 시각화할 수 있습니다.


 

7. 결론

CSV 파일로 데이터를 저장하는 것은 데이터 관리와 활용의 기본적인 단계입니다. Pandas의 to_csv() 메서드를 사용하면 수집한 데이터를 간단히 파일로 저장할 수 있으며, 저장된 데이터를 다시 불러와 다양한 분석 및 시각화 작업에 활용할 수 있습니다. 이번 글에서 다룬 기본 방법과 고급 옵션을 적절히 활용하여 더욱 효율적인 데이터 처리 환경을 구축해 보세요!