Learn AI with Python · 강의

수집 데이터의 효율적 저장

CSV/JSON/Parquet로 저장하고 안전하게 추가하며 중복을 제거하고 증분 수집을 수행합니다.

레슨 3/413개 단계

수집 데이터의 효율적 저장은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

원시 응답에서 저장된 데이터로

데이터를 수집한 후에는 다시 불러오고, 공유하고, 분석할 수 있도록 저장해야 합니다. 적절한 형식과 몇 가지 습관만으로도 속도와 디스크 사용량을 크게 개선할 수 있습니다.

이 레슨에서는 CSV, Parquet, 배치 추가 및 중복 제거를 다룹니다.

JSON을 DataFrame으로 변환하기

API 응답은 대개 딕셔너리의 목록입니다. pd.DataFrame은 이를 저장할 수 있는 표로 바로 변환합니다.

import pandas as pd

records = [
    {"id": 1, "name": "A", "score": 9.5},
    {"id": 2, "name": "B", "score": 8.0},
]
df = pd.DataFrame(records)
print(df)

df.to_csv로 CSV 저장하기

CSV는 범용적이고 사람이 읽기 쉽습니다. to_csv로 저장할 때 index=False를 전달하면 행 인덱스가 불필요한 열로 기록되지 않습니다.

df.to_csv("data.csv", index=False)

# Reload
df2 = pd.read_csv("data.csv")

CSV의 한계

CSV는 편리하지만 AI 작업에서는 다음과 같은 단점이 있습니다.

  • 자료형이 없음 — 모든 값이 텍스트로 저장되므로 불러올 때 자료형을 다시 추정해야 함
  • 파일이 크고 기본적으로 압축되지 않음
  • 대규모 데이터셋을 읽을 때 느림

더 크거나 반복해서 불러오는 데이터에는 Parquet가 더 좋습니다.

df.to_parquet로 Parquet 저장하기

Parquet는 열 기반 이진 형식입니다. 자료형을 보존하고 압축 효율이 좋으며 CSV보다 훨씬 빠르게 불러올 수 있습니다.

pyarrow와 같은 엔진을 설치해야 합니다.

df.to_parquet("data.parquet", index=False)

df2 = pd.read_parquet("data.parquet")
print(df2.dtypes)   # types preserved, no re-guessing

CSV와 Parquet — 무엇을 언제 사용할까요

일반적인 기준은 다음과 같습니다.

  • CSV: 소규모 데이터, Python이 아닌 도구와 공유, 빠른 확인
  • Parquet: 대규모 데이터, 반복적인 불러오기, 자료형 보존, 분석 파이프라인

모델에 입력할 데이터를 수집하는 작업에는 Parquet를 권장합니다.

pd.concat으로 새 배치 추가하기

데이터 수집은 대개 배치 단위로 이루어집니다. pd.concat을 사용해 기존 DataFrame과 새 DataFrame을 결합합니다.

ignore_index=True는 인덱스 번호를 다시 매겨 깔끔하게 유지합니다.

new_batch = pd.DataFrame(new_records)
df = pd.concat([df, new_batch], ignore_index=True)
print(len(df))

CSV 파일에 직접 배치 추가하기

기존 CSV를 메모리에 불러오지 않고 내용을 추가하려면 추가 모드로 열고, 이후 기록에서는 헤더를 건너뜁니다.

import os

header = not os.path.exists("data.csv")
new_batch.to_csv("data.csv", mode="a", header=header, index=False)

중복 제거가 필요한 이유

수집을 다시 실행하거나 페이지가 겹치거나 재시도하면 중복된 행이 생길 수 있습니다. 중복된 행은 개수를 부풀리고 훈련/테스트 분할 사이로 섞여 들어가 모델 평가를 저해할 수 있습니다.

배치를 결합한 후에는 항상 중복을 제거하십시오.

drop_duplicates(subset=[id])

안정적인 고유 키(대개 id)를 drop_duplicates(subset=...)와 함께 사용하십시오. 이렇게 하면 다른 필드가 조금 변경되었더라도 반복된 항목을 제거할 수 있습니다.

keep="last"는 각 id의 가장 최근 버전을 유지합니다.

df = df.drop_duplicates(subset=["id"], keep="last").reset_index(drop=True)
print(len(df), "unique rows")

저장 및 병합 도우미

각 부분을 결합해 보겠습니다. 기존 Parquet 파일이 있으면 불러오고, 새 배치를 concat한 다음, id를 기준으로 중복을 제거하고 다시 저장합니다. 여러 번 실행해도 안전합니다.

import os
import pandas as pd

def save_merge(new_df, path="data.parquet", key="id"):
    if os.path.exists(path):
        old = pd.read_parquet(path)
        new_df = pd.concat([old, new_df], ignore_index=True)
    new_df = new_df.drop_duplicates(subset=[key], keep="last")
    new_df.to_parquet(path, index=False)
    return new_df

빠른 확인: 형식 선택

모델 훈련을 위해 대규모 데이터세트를 반복해서 불러와야 하며, 자료형을 유지하면서 빠르게 읽어야 합니다.

복습: 데이터 효율적으로 저장하기

이제 수집한 데이터를 효율적으로 보존할 수 있습니다.

  • pd.DataFrame으로 JSON 레코드를 표로 변환하기
  • 이식성이 높은 텍스트에는 to_csv(index=False), 자료형을 유지하는 빠른 저장에는 to_parquet 사용하기
  • 배치에는 pd.concat(ignore_index=True) 또는 CSV append 모드 사용하기
  • drop_duplicates(subset=["id"])로 행을 고유하게 유지하기

다음 주제: 실제 공개 데이터 API 사용하기

무료로 시작

AI 튜터와 함께 Python을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
53
레슨
225

자주 묻는 질문

“수집 데이터의 효율적 저장” 강의는 무료인가요?

네 — “수집 데이터의 효율적 저장” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“수집 데이터의 효율적 저장”에서 뭘 배우나요?

CSV/JSON/Parquet로 저장하고 안전하게 추가하며 중복을 제거하고 증분 수집을 수행합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“수집 데이터의 효율적 저장” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 데이터 수집을 위한 REST API 기초
  2. 대규모 데이터셋 페이지 처리 및 수집
  3. 수집 데이터의 효율적 저장
  4. 공공 데이터 API 활용
← Learn AI with Python(으)로 돌아가기