본문 바로가기

PYTHON

PANDAS :: read_pickle

매일매일 간단하게 루틴으로 하려했는데 생각보다 시간이 오래 걸린다.

앞으로 쓸데없는 말 없이 간소하게 쓰기루.

스타뜨!

 

 

 

 

피클이 뭔데?

 

read_pickle을 이용하려면, 우선 pickle이 뭔지부터 알아야 한다.

간단히 말하면 다음과 같다.

 

 


<Pickle>

text data처럼 로드하는데 시간을 많이 잡아먹는 데이터를 편리하게 저장, 로드하려면 어떻게 할까?
피클은 파이썬의 모든 object를 있는 그대로 저장할 수 있는 모듈로,
객체를 모두 바이너리 데이터로 저장하여 raw data를 load하는 시간을 단축시킬 수 있다.
이때 바이너리 파일로 저장하기 때문에 로드할 때 wb, rb처럼 바이너리 형식을 사용해야 한다고.

설명은 이분들의 블로그를 참고했다, 자세한 설명을 보려면 여기로

> https://korbillgates.tistory.com/173

> https://seing.tistory.com/95


 

 

피클은 원래부터 패키지가 있다.

사용법은 다음과 같다.

 

import pickle
data = {'name' : 'Sarah', 'age' : 15} #딕셔너리 데이터

## Save Pickle Data using dump
# write version으로 입력
with open('data.pickle', 'wb') as fw:
    pickle.dump(data, fw)

## Load Pickle Data using load
# read version으로 불러오기
with open('data.pickle', 'rb') as fr:
    data = pickle.load(fr)

data # success loading.

디렉토리에 잘 저장됨.

 

 

 

REMARK 

여기서 궁금한 게 있었다, 굳이 as fw를 해준 이유가 뭐지?

as fw은, 'data.pickle'을 대신하여 'fw'로 표현해준다는 말이다. 그런데 fw를 빼고 돌렸더니 오류가 났다.

with open('data.pickle', 'wb'):
    pickle.dump(data, data.pickle)

대체 왜 오류가 났을까 생각했는데, 파일명에 .(dot)을 포함해서다.

data에 있는 pickle을 불러와라! 라고 읽혔던 것이다. 이건 꼭 참고해두자.

 

 

 

 


 

read_pickle

 

 

이제 판다스에 속한 read_pickle을 알아보자.

이미 pickle package가 있음에도 pandas에 이 함수가 있는 이유는,

판다스로 만드는 DataFrame을 pickle로 변환하기 위함이다.

 

score dataframe을 만들었다.

 

이제 이 DataFrame을 pickle로 Save & Load하자.

import pickle
score.to_pickle('score')

s_data = pd.read_pickle('score')

goooooood.

'PYTHON' 카테고리의 다른 글