Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
Tags
- 신경쓰기의 기술
- SKU Consolidation
- MS SQL Server
- 피그마인디언
- forecast
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- kaggle
- 코딩테스트연습
- MySQL
- Product Demand
- ModelCheckPoint
- ABC Analysis
- SQL
- TensorFlowGPU
- 파이썬
- tensorflow
- 코딩테스트
- pandas profiling
- Inventory Optimization
- 데이터분석
- 딥러닝
- 프로그래머스
- 웨어하우스 보관 최적화
- ProfileReport
- oracle
- HackerRank
- Labor Management System
- leetcode
- eda
- Gaimification
Archives
- Today
- Total
오늘도 배운다
Pandas read_csv가 너무 느리다면? 대용량 csv 파일 빠르게 불러오기 본문
문제
csv 형식의 데이터셋 크기가 커서 파일을 읽는데 시간이 너무 오래걸린다.
- 약 470만 X 23
- 메모리 사용량 825 MB
- 소요시간 11.2498초
코드를 실행할 때 마다 11초가 소요되는 것을 원하지 않는다
해결방안 및 결과
CSV 파일을 Parquet 형태로 만들어 놓은 뒤, Pandas에서 read_parquet으로 읽어오기
적용한 결과 11.24초에서 2.34초로 줄었다.
소요시간이 약80% 줄어들었다
적용방법
1. pyarrow 설치
pip install pyarrow
2. CSV 파일 읽어서 Parquet 형식 파일 생성 (이후 해당코드는 주석처리)
# Pandas 불러오기
import pandas as pd
# 파이애로우 불러오기
import pyarrow.csv as pv
import pyarrow.parquet as pq
# 트레인 csv 파일 경로
path_train = "./train.csv"
# Pandas로 csv 불러오기
train = pv.read_csv(path_train)
# 읽은 csv 파일을 parquet 으로 변경
pq.write_table(train, path_train.replace('csv', 'parquet') ) #replace를 이용해서 파일 형식만 바꿔줌
### 그 결과, train.csv 경로가 있는 곳에 train.parquet이 생성된다
3. 방금 생성한 parquet 타입 파일을 Pandas로 불러오기
df = pd.read_parquet("./train.parquet")
끝
728x90
'빅데이터(파이썬)' 카테고리의 다른 글
탐색적 데이터분석 쉽게하기 - Pandas -profiling (0) | 2022.12.23 |
---|
Comments