모니터-코드-있는-모습
데이터-분석

pandas를 이용해 데이터를 가공하거나 분석을 하고 나면 저장할 필요가 생깁니다. pandas 데이터 프레임을 저장하는 방법에는 여러 가지가 있지만, 처음에는 큰 고민 없이 csv파일로 저장하고는 합니다. 하지만 csv파일로 저장하면 다음에 다시 pandas의 dataframe으로 불러올 때 data type이 다 날아가서 사용하기가 불편합니다. 오늘은 파이썬 판다스 데이터프레임을 저장하는 방법 5가지에 대해서 알아보겠습니다.

 

 

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

 

1. CSV 파일로 저장하기

아마 가장 많이 사용하는 방법이 아닐까 싶습니다. 보통 데이터를 엑셀에서 사용하고 싶을 때 많이 쓰는 저장방법입니다. 하지만, 이렇게 저장하면 데이터 타입들이 다 날아가기 때문에 파이썬에서 데이터를 다시 사용하기 위한 방법으로는 추천하지 않습니다.
 
저장하는 방법은 간단합니다. 데이터 프레임 뒤에 또는 .to_csv()를 붙이면 됩니다. 데이터를 다시 읽어올 때는 pandas라이브러리의 read_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 등 모든 객체를 다 저장할 수 있습니다. 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을 사용하였습니다.

 
저장하는 방법은 앞의 방법들보다는 조금 복잡합니다. 우선 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")

 

Recommendation 포스팅

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기