일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- fastapi
- streamlit
- GPU
- 머신러닝
- Ai
- 빅데이터분석기사
- ㅂ
- 딥러닝
- 실기
- gradio
- Kaggle
- 인공지능
- webserving
- 공간분석
- dl
- qgis
- 공간시각화
- pytorch
- 캐글
- 성능
- 3유형
- 1유형
- K최근접이웃
- 2유형
- KNN
- 예제소스
- ml 웹서빙
- CUDA
- QGIS설치
- DASH
Archives
- Today
- Total
에코프로.AI
[Python] pickle vs parquet 본문
Python에서 pickle과 parquet은 데이터를 저장하고 교환하는 데 사용되는 두 가지 중요한 형식입니다.
각각의 특징과 사용법에 대해 알아보겠습니다.
Pickle
Pickle은 Python 객체를 직렬화하고 역직렬화하는 데 사용되는 내장 모듈입니다1.
특징
- Python 객체를 바이트 스트림으로 변환하여 저장하거나 네트워크를 통해 전송할 수 있습니다
- 딕셔너리, 리스트, 클래스 인스턴스 등 거의 모든 Python 객체를 직렬화할 수 있습니다
- Python에 특화된 형식으로, 다른 언어와의 호환성은 제한적입니다.
사용 예시
- 이 코드는 딕셔너리를 pickle 형식으로 저장하고 다시 로드하는 과정을 보여줍니다.
import pickle
# 객체 생성
data = {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 객체를 파일에 저장 (직렬화)
with open('data.pkl', 'wb') as file:
pickle.dump(data, file)
# 파일에서 객체 로드 (역직렬화)
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)
print(loaded_data)
Parquet
Parquet은 열 기반 스토리지 형식으로, 대규모 데이터 처리에 최적화되어 있습니다
특징
- 열 기반 저장 방식으로 데이터를 압축하여 저장 공간을 절약합니다
- 빠른 쿼리 처리와 데이터 스키핑 기능을 제공합니다
- 여러 프로그래밍 언어와 호환되며, 특히 빅데이터 분석에 적합합니다
사용 예시
- 이 코드는 pandas를 사용하여 데이터프레임을 Parquet 형식으로 저장하고 다시 읽는 과정을 보여줍니다
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'San Francisco', 'London']
})
# Parquet 파일로 저장
df.to_parquet('data.parquet')
# Parquet 파일 읽기
loaded_df = pd.read_parquet('data.parquet')
print(loaded_df)
- 추가옵션
df.to_parquet('data.parquet', index=False) # index=Fasle (index를 저장안함)
_columns = ['자전거번호', '대여일자', '이용시간(분)', '이용거리(M)']
df_BikeRent_2023 = pd.read_parquet('G:\\내 드라이브\\DataSet\\서울특별시 공공자전거 대여이력 정보_2023.parquet', columns = _columns)
비교
- Pickle은 Python 객체를 그대로 저장할 수 있어 편리하지만, 보안 위험이 있을 수 있습니다
- Parquet은 대용량 데이터 처리에 더 적합하며, 다양한 빅데이터 도구와 호환됩니다
두 형식 모두 Python에서 쉽게 사용할 수 있으며, 각각의 장단점을 고려하여 적절한 상황에 활용하면 됩니다.
끝~
