반응형
질문
지금은 스크립트를 실행할 때마다 상당히 큰 CSV
를 데이터프레임으로 가져오고 있습니다. 스크립트가 실행되는 동안 그 데이터프레임을 계속 사용할 수 있는 좋은 해결책이 있을까요? 그렇게 하면 스크립트가 실행되는 동안 시간을 기다리는 데에 모든 시간을 보내지 않아도 될 것 같습니다.
답변
가장 쉬운 방법은 pickle을 사용하여 to_pickle
으로 저장하는 것입니다:
df.to_pickle(file_name) # 저장할 위치, 일반적으로 .pkl 형식으로 저장합니다.
그런 다음 다음을 사용하여 다시 불러올 수 있습니다:
df = pd.read_pickle(file_name)
참고: 0.11.1 이전에는 save
와 load
가 이 작업을 수행하는 유일한 방법이었습니다 (지금은 각각 to_pickle
과 read_pickle
으로 대체되었습니다).
다른 인기 있는 선택은 HDF5 (pytables)를 사용하는 것으로, 대용량 데이터셋에 대한 매우 빠른 액세스 시간을 제공합니다:
import pandas as pd
store = pd.HDFStore('store.h5')
store['df'] = df # 저장
store['df'] # 불러오기
더 고급스러운 전략은 cookbook에서 논의되고 있습니다.
0.13 이후에는 msgpack도 있으며, 이는 JSON 대체로 상호 운용성이 더 좋거나 더 빠른 대안이거나 파이썬 객체/텍스트 중심 데이터인 경우에 유용합니다 (이 질문을 참조하십시오: this question).
반응형
댓글