728x90
DuckDB는 데이터 분석가, 엔지니어, 사이언티스트들 사이에서 Pandas를 대체할 차세대 도구로 주목받는 초고속 분석용 데이터베이스입니다.
- DuckDB는 "SQLite for Analytics" 라고 불리는 경량 분석용 SQL 데이터베이스
- 로컬에서 설치 없이 사용할 수 있는 내장형(in-process) DB
- SQL 문법으로 대규모 데이터를 빠르게 분석 가능
- Pandas, Arrow, Parquet, CSV 등 다양한 형식 지원
- 메모리 사용량이 적고, 병렬 처리로 매우 빠름
- Pandas로 다루기 벅찬 대용량 파일 처리
#csv 파일 생성
import duckdb
from sklearn.datasets import load_iris
import pandas as pd
# iris 데이터 불러오기
iris = load_iris()
# DataFrame으로 변환
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df['target'] = iris.target
df.columns = df.columns.str.replace(' ', '_')
df.columns = df.columns.str.replace('_(cm)', '')
# CSV 파일로 저장
df.to_csv('iris.csv', index=False)
print(df.head())
iris.csv 파일을 생성하였습니다.
duckdb.sql("select target,count(*) as cnt from read_csv('iris.csv') group by target order by 1").df()
#CSV 파일에서 직접 SQL문 수행
#Pandas는 메모리에 모두 올리지만 duckdb는 메모리 사용하지 않음
csv 파일로 직접 sql문을 사용할 수 있습니다. dataframe도 직접 SQL문을 사용할 수 있습니다.
parquet 등 다양한 포맷의 파일도 사용이 가능합니다.
만약 duckdb가 미설치되어 있으면 pip install duckdb로 설치하시면 됩니다.
다음글은 DB 테이블 생성 및 입력등에 대해서 글을 쓰도록 하겠습니다.
728x90
'데이터분석' 카테고리의 다른 글
DuckDB-3 (Parquet 및 Copy) (0) | 2025.04.10 |
---|---|
DuckDB-2(테이블 활용) (0) | 2025.04.09 |
pandas 컬럼명 변경 (0) | 2025.04.08 |
비모수검정 (0) | 2025.04.08 |
정규성 검정(Normality Tests) (0) | 2025.04.08 |