파이썬 판다스 데이터프레임 저장 방법 5가지!

2019. 3. 15. 07:29

pandas를 이용해 데이터를 가공하거나 분석을 하고 나면 저장할 필요가 생긴다. pandas 데이터 프레임을 저장하는 방법에는 여러가지가 있지만, 처음에는 큰 고민 없이 csv파일로 저장하고는 한다. 하지만 csv파일로 저장하면 다음에 다시 pandas의 dataframe으로 불러올 때 data type이 다 날라가서 사용하기가 불편하다.

오늘은 파이썬 판다스 데이터프레임을 저장하는 방법 5가지에 대해서 알아보도록 하겠다.


아하



파이썬 pandas 데이터 프레임을 저장하는 방법에 대해서 하나씩 천천히 알아보도록 하자.


1. CSV 파일로 저장하기

아마 가장 많이 사용하는 방법이 아닐까 한다. 보통 데이터를 엑셀에서 사용하고 싶을 때 많이 쓰는 저장방법이다. 하지만, 이렇게 저장하면 데이터 타입들이 다 날아가기 때문에 파이썬에서 데이터를 다시 사용하기 위한 방법으로는 추천하지 않는다.

저장하는 방법은 간단한다. 데이터 프레임 뒤에 또는 .to_csv()를 붙이면 된다. 데이터를 다시 읽어올 때는 pandas라이브러리의 read_csv 함수를 이용하면 된다.

파이참에는 CSV파일을 쉽게 사용할 수 있도록 도와주는 플러그인이 있다. CSV파일 관련 플러그인이 궁금하다면, 아래 포스팅을 참조해보자.
( 참조: 파이참 CSV파일 플러그인으로 쉽게 사용하기 )


  import pandas as pd


  # CSV파일로 저장하기

  df.to_csv("test.csv")


  # CSV파일 읽기

  df = pd.read_csv("test.csv")



2. 엑셀 파일로 저장하기

CSV파일로 저장하는 방법과 유사하다. CSV파일과 동일하게 데이터 타입들이 다 날아간다. 저장할 때는 데이터 프레임 뒤에 .to_excel(), 다시 불러올 때는 read_excel()을 이용하면 된다. 엑셀에 시트가 여러 개일때는 sheetname 파리미터를 통해서 원하는 sheet를 불러올 수 있다.


  import pandas as pd


  # 엑셀로 저장하기

  df.to_excel("test.xlsx")


  # 엑셀파일 읽기

  df = pd.read_excel("test.xlsx")



3. pickle로 저장하기

피클은 파이썬의 모든 객체를 파일로 저장할 수 있는 방법이다. 보통 sklearn라이브러리를 통해 모델을 학습시키고, 저장할 때 많이 사용한다. pandas데이터프레임 뿐만 아니라 list, dict 등 모든 객체를 다 저장할 수 있다. 다른 객체를 저장할 때 피클을 사용하는 방법이 궁금하다면 아래 포스팅을 참조해보자.
( 참조: 파이썬 pickle 피클로 저장 걱정을 날려보자 )


pandas 데이터프레임을 저장할 때는 to_pickle, 불러올 때는 read_pickle이라는 함수를 이용한다. 


  df.to_pickle("df.pkl")

  df = pd.read_pickle("df.pkl")



추천포스트



4. SQLite3 DB로 저장하기

데이터를 저장하기 가장 좋은 형태는 DB이다. DB 종류에는 여러가지가 있지만, 일반인들이 사용하려면 무료고 가벼운 것이 좋다. SQLite3는 데이터베이스 관리 시스템으로 PC에 설치해서 사용하기 좋은 DB이다. 이전에 경마데이터를 크롤링하고 저장할 때도 SQLite3를 사용하였다. 설치방법은 아래 포스팅을 참조하도록 하자.

( 참조: 경마 데이터 수집하기 - SQLite라는 DB로 저장하기 )


저장하는 방법은 앞의 방법들보다는 조금 복잡하다. 우선 connect 함수를 이용하여 DB에 접속한다. 다음으로 dataframe의 to_sql함수로 저장을 한다. DB안에는 여러 개의 테이블이 있다. 저장할 테이블 이름을 지정하고, 동일한 테이블이 있을 때 어떻게 할 지 정해준다. append를 이용하면 기존 테이블 밑에 데이터를 추가하고, replace를 이용하면 기존 데이터를 삭제학 새로운 데이터로 저장한다. index = False는 판다스 데이터프레임의 index는 저장하지 않겠다는 것이다.


  import sqlite3


  # SQLite3 DB로 저장하기

  con = sqlite3.connect("test.db")

  df.to_sql("table_name", con, if_exists="append", index=False)

  con.close()


  # SQLite3 DB 불러오기

  con = sqlite3.connect("test.db")

  df = pd.read_sql("SELECT * FROM table_name", con)

  con.close()




5. html 표로 만든다

마지막은 저장하기 위한 방법은 아니지만, 데이터프레임을 유용하게 사용할 수 있는 방법이기에 소개해본다. 블로그를 운영하는 경우에는 표를 보여주기 위해서는 table태그를 사용해야 한다. 하지만 만들기도 어렵고, 블로그에서 제공하는 표제작툴을 이용하는 것도 시간이 오래 걸린다. 이럴 때 to_html을 이용하면 데이터프레임을 html table태그로 변환해준다.


  # 데이터프레임을 html표로 바꾸기

  df.to_html()


  # html 파일로 저장하기

  df.to_html("test.html")



오늘은 이렇게 파이썬 pandas dataframe을 저장하는 5가지 방법에 대해서 알아보았다. 가장 좋은 방법이 있다기보다는 사용 목적에 따라 알맞은 방법을 사용하면 되겠다.


파이썬을 직접 활용하는 것만큼 효과적인 공부는 없다. 그래서 파이썬을 활용해서 할 수 있는 일들을 정리해보았다. 자세한 내용은 아래 포스팅을 참조해보자.
( 참조: 파이썬 활용, 파이썬 프로젝트로 할 수 있는 일들을 알아보자! )


오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.

(참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)

댓글()
  1. 익명 2021.03.07 19:06 댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. Favicon of https://ulicafe.com BlogIcon 우리들 2021.07.29 15:07 댓글주소  수정/삭제  댓글쓰기

    정보 감사합니다^^