Pandas:DataFrame:다른 형태로 저장하고 불러오기

1 개요편집

데이터프레임을 사용했다면 그냥 여기에서 멈추는 것이 아니라, 다른 형태로 저장해두어야 추후에 불러와 사용할 수 있다.

표형 데이터는 판다스로 쉽게 가져올 수 있다.

page = requests.get(url)

tables = pd.read_html(page.text)

2 엑셀, CSV편집

데이터프레임을 엑셀로 저장하거나, 엑셀파일을 데이터프레임으로 불러오거나.

2차원 데이터를 다루는 가장 쉬운 방법은 엑셀을 이용하는 것. 저장하고 시각화 하는 데 엑셀을 이용한다면 굉장히 편리할 것이다.

2.1 사전준비편집

엑셀 관련기능을 사용하려면 관련 라이브러리를 설치해야 한다.

과정 설명 방법
openpyxl pip install openpyxl

2.2 사용편집

과정 설명 방법
파일 저장하기 openpyxl 따위의 라이브러리 설치가 선행되어야 한다.

아래 두 방법으로 df를 엑셀에 저장한다.


객체.to_excel('c:\\경로.xlsx')

객체.to_csv('c:\\경로.csv')

import os  # 저장경로를 지정하기 위함.

wd = os.getcwd()  # 현재 디랙터리.
file_dir = '{}\\경로명\\'.format(wd)    # 저장할 경로 지정.
file_name = '파일이름'                  # 저장할 이름 지정.
df.to_excel(file_dir + file_name)       # 파일저장.
파일 불러오기 openpyxl 따위의 라이브러리 설치가 행되어야 한다.

아래 두 방법으로 불러온다.

객체 = pandas.read_excel('c:\\경로.xlsx')

객체 = pandas.read_csv('c:\\경로.csv')

보통 첫번째 시트만 df로 만든다.

저장했던 엑셀파일을 불러오면 저장한 df 그대로 사용되는 게 아니라, 엑셀의 제한된 기능에 따라 변형되기 때문에 칼럼을 다시 만져주어야 제대로 사용할 수 있다. 기본적으로 맨 윗줄을 칼럼 처리한다.(상관없으면 그냥 쓰고;)

때문에 df['열이름'] = pd.to_numeric(df['열이름']) 형태로 데이터형을 다시 통일, 설정해주어야 한다.


인덱스 지정은 따로 하지 않는다. 'index_col=숫자' 옵션으로 인덱스를 지정할 수도 있다.

Sheet_name='시트명' 옵션으로 해당 시트를 열 수도 있다.

3 Json편집

데이터프레임을 Json으로 바꾸거나 Json을 데이터프레임으로.

범용적으로 쓰이는 데이터 전달 포멧. 장고 등 서비스에서 스프레드시트를 파일로 저장하는 것도 좋지만, json화 하여 저장하는 것도 방법이 될 수 있다.

과정 설명 방법
Json으로 변환 데이터프레임을 json으로.
import pandas as pd

df = pd.read_excel(uploadedFile)  # 어떤 방식으로든 df를 만들고..
json_text = df.to_json()
Json을 dataframe으로 단순히 읽으면 된다.
import pandas as pd

df = pd.read_json('test.json')

4 HTML편집

웹문서에서 읽어온 데이터를 바로 dataframe화 하는 경우도 필요하다.

의도 방법 설명
데이터 불러오기 객체 = pandas.read_html(html 문서) html 문서의 데이터타입은 str이어야 한다. requests 등으로 웹문서를 불러와 변환해 넣으면 된다.

표형 데이터는 쉽게 가져올 수 있다.

page = requests.get(url)
tables = pd.read_html(page.text)

  [굳이 .text 속성에 접근해야 하네;;? 그냥 객체와 text속성은 어떻게 다른지 보자.]

여러 테이블이 있는 경우, 데이터프레임이 들어있는 리스트로 반환된다.