티스토리 뷰

Pyhton/pandas

feather vs excel 속도 비교

으뜸엄마 2024. 11. 28. 17:54
728x90
반응형
pandas 데이터프레임 읽고 쓸때 알아두면 좋은 것

 
 
pandas에서 read_feather와 to_feather는 to_excel보다 훨씬 빠르게 데이터를 읽고 쓸 수 있습니다. 이는 파일 포맷의 특성과 관련이 있습니다.
 

1. 속도 차이

  • Feather 형식은 이진 포맷으로 데이터를 저장하며, 빠른 입출력 성능을 제공합니다. Feather는 데이터를 컬럼 지향적으로 저장하여, 대량의 데이터를 효율적으로 처리할 수 있습니다. 이로 인해 파일 읽기와 쓰기 속도가 매우 빠릅니다.
  • Excel 형식은 텍스트 기반의 파일 포맷이므로, 데이터를 로드하거나 저장할 때 상대적으로 더 많은 시간이 걸립니다. Excel 파일을 다루는 과정에서 내부적으로 XML 파싱, 데이터 형식 검증 등의 추가적인 작업이 필요하기 때문입니다.

 

2. 왜 빠를까?

  • 이진 포맷: Feather와 같은 이진 포맷은 데이터를 메모리에서 바로 읽고 쓸 수 있어 속도가 매우 빠릅니다. 반면, Excel 포맷은 데이터 변환과 메타데이터 처리 등의 추가 작업이 필요합니다.
  • 컬럼 지향적 저장: Feather는 데이터를 컬럼 단위로 저장하고, 이를 효율적으로 읽고 쓸 수 있는 방식으로 최적화되어 있습니다. Excel은 표 형태로 데이터를 저장하므로 컬럼 단위 접근이 상대적으로 비효율적일 수 있습니다.

 

반응형

예시코드 : feather

import pandas as pd

# 데이터 생성
df = pd.DataFrame({
    'A': range(100000),
    'B': range(100000, 200000)
})

# 데이터를 Feather 파일로 저장
df.to_feather('data.feather')

# Feather 파일에서 데이터 읽기
df_loaded = pd.read_feather('data.feather')

print(df_loaded.head())

 
 

예시코드 : Excel

import pandas as pd

# 데이터 생성
df = pd.DataFrame({
    'A': range(100000),
    'B': range(100000, 200000)
})

# 데이터를 Excel 파일로 저장
df.to_excel('data.xlsx', index=False)

# Excel 파일에서 데이터 읽기
df_loaded = pd.read_excel('data.xlsx')

print(df_loaded.head())

 
 
 

속도비교 코드

위의 단순한 데이터프레임을 쓰고 읽는데 걸리는 시간을 비교 해봅시다.

import pandas as pd
import time

# 데이터 생성
df = pd.DataFrame({
    'A': range(100000),
    'B': range(100000, 200000)
})

# Feather 파일 읽기 시간 측정
start_time = time.time()
df.to_feather('data.feather')
df_loaded_feather = pd.read_feather('data.feather')
feather_time = time.time() - start_time
print(f"Feather read/write time: {feather_time:.6f} seconds")

# Excel 파일 읽기 시간 측정
start_time = time.time()
df.to_excel('data.xlsx', index=False)
df_loaded_excel = pd.read_excel('data.xlsx')
excel_time = time.time() - start_time
print(f"Excel read/write time: {excel_time:.6f} seconds")

 
 
Feather포맷은 대규모 데이터에 대해 빠르고 효율적인 처리가 가능하며, Excel은 상대적으로 속도가 느립니다. 따라서 대규모 데이터를 다룰 때는 Feather포맷을 사용하는 것이 좋습니다. 자동화 목적으로 엑셀에 읽고 쓰고 하는게 아니라면 Feather가 유리합니다.
 
 

investwings님(@investwingsapp) • Threads, 자유로운 소통 공간

팔로워 187명 • 스레드 24개 • 투자에 날개를 달다. 현업 11년차 재무회계, 세무회계, 자금, 결산 재무담당자이자 7년차 파이썬 데이터분석, 웹대시보드 개발자가 여러분의 투자에 날개를 달아드

www.threads.net

 
 

investwings 당신의투자에 날개를 달다.

현업 11년차 재무회계, 세무회계, 자금, 결산담당 겸 7년차 파이썬 데이터분석, 웹대시보드 개발자가 투자에 날개를 달아줄 프로그램을 만드는 여정

investwings.app

 

반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
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
글 보관함