수집 데이터의 효율적 저장
CSV/JSON/Parquet로 저장하고 안전하게 추가하며 중복을 제거하고 증분 수집을 수행합니다.
수집 데이터의 효율적 저장은(는) 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-guessingCSV와 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 데이터 수집을 위한 REST API 기초
- 대규모 데이터셋 페이지 처리 및 수집
- 수집 데이터의 효율적 저장
- 공공 데이터 API 활용