본문 바로가기
Python/Python FAQ

Python Pandas 데이터프레임을 디스크에 반전 가능하게 저장하고 로드하는 방법은 무엇인가요?, How to reversibly store and load a Pandas dataframe to/from disk

by 베타코드 2023. 11. 24.
반응형

질문


지금은 스크립트를 실행할 때마다 상당히 큰 CSV를 데이터프레임으로 가져오고 있습니다. 스크립트가 실행되는 동안 그 데이터프레임을 계속 사용할 수 있는 좋은 해결책이 있을까요? 그렇게 하면 스크립트가 실행되는 동안 시간을 기다리는 데에 모든 시간을 보내지 않아도 될 것 같습니다.


답변


가장 쉬운 방법은 pickle을 사용하여 to_pickle으로 저장하는 것입니다:

df.to_pickle(file_name)  # 저장할 위치, 일반적으로 .pkl 형식으로 저장합니다.

그런 다음 다음을 사용하여 다시 불러올 수 있습니다:

df = pd.read_pickle(file_name)

참고: 0.11.1 이전에는 saveload가 이 작업을 수행하는 유일한 방법이었습니다 (지금은 각각 to_pickleread_pickle으로 대체되었습니다).


다른 인기 있는 선택은 HDF5 (pytables)를 사용하는 것으로, 대용량 데이터셋에 대한 매우 빠른 액세스 시간을 제공합니다:

import pandas as pd
store = pd.HDFStore('store.h5')

store['df'] = df  # 저장
store['df']  # 불러오기

더 고급스러운 전략은 cookbook에서 논의되고 있습니다.


0.13 이후에는 msgpack도 있으며, 이는 JSON 대체로 상호 운용성이 더 좋거나 더 빠른 대안이거나 파이썬 객체/텍스트 중심 데이터인 경우에 유용합니다 (이 질문을 참조하십시오: this question).

반응형

댓글