"Pandas:DataFrame:다른 형태로 저장하고 불러오기"의 두 판 사이의 차이
(→단순 입력) |
잔글 (→mysql) |
||
(같은 사용자의 중간 판 8개는 보이지 않습니다) | |||
2번째 줄: | 2번째 줄: | ||
데이터프레임을 사용했다면 그냥 여기에서 멈추는 것이 아니라, 다른 형태로 저장해두어야 추후에 불러와 사용할 수 있다. | 데이터프레임을 사용했다면 그냥 여기에서 멈추는 것이 아니라, 다른 형태로 저장해두어야 추후에 불러와 사용할 수 있다. | ||
− | + | 표형 데이터는 판다스로 쉽게 가져올 수 있다. | |
− | |||
− | === | + | page = requests.get(url) |
− | + | ||
+ | tables = pd.read_html(page.text) | ||
+ | |||
+ | == 엑셀, CSV == | ||
+ | 데이터프레임을 엑셀로 저장하거나, 엑셀파일을 데이터프레임으로 불러오거나. | ||
+ | |||
+ | 2차원 데이터를 다루는 가장 쉬운 방법은 엑셀을 이용하는 것. 저장하고 시각화 하는 데 엑셀을 이용한다면 굉장히 편리할 것이다. | ||
+ | |||
+ | === 사전준비 === | ||
+ | 엑셀 관련기능을 사용하려면 관련 라이브러리를 설치해야 한다. | ||
{| class="wikitable" | {| class="wikitable" | ||
!과정 | !과정 | ||
12번째 줄: | 20번째 줄: | ||
!방법 | !방법 | ||
|- | |- | ||
− | | | + | |openpyxl |
| | | | ||
− | |pip install | + | |pip install openpyxl |
+ | |} | ||
+ | |||
+ | === 사용 === | ||
+ | {| class="wikitable" | ||
+ | !과정 | ||
+ | !설명 | ||
+ | !방법 | ||
|- | |- | ||
− | | | + | |파일 저장하기 |
− | | | + | |openpyxl 따위의'''<nowiki/>''' '''<nowiki/>'''라이브러리 설치가 선'''<nowiki/>'''행되'''<nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/>'''어야 한다. |
− | + | 아래 두 방법으로 df를 엑셀에 저장한다. | |
− | + | ||
− | + | ||
− | + | 객체.to_excel('''<nowiki/>'<nowiki/>'''c:\\경로.xlsx'''<nowiki/>'''') | |
+ | |||
+ | 객체.to_csv('''<nowiki/>'<nowiki/>'''c:\\경로.csv'''<nowiki/>'''') | ||
|<syntaxhighlight lang="python"> | |<syntaxhighlight lang="python"> | ||
− | + | import os # 저장경로를 지정하기 위함. | |
− | + | ||
− | + | wd = os.getcwd() # 현재 디랙터리. | |
− | + | file_dir = '{}\\경로명\\'.format(wd) # 저장할 경로 지정. | |
+ | file_name = '파일이름' # 저장할 이름 지정. | ||
+ | df.to_excel(file_dir + file_name) # 파일저장. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
− | | | + | |파일 불러오기 |
− | | | + | |openpyxl 따위의 라이브러리 설치가 '''<nowiki/>'''선'''<nowiki/>'''행되어야 한다. |
− | ( | + | 아래 두 방법으로 불러온다. |
+ | |||
+ | 객체 = p'''<nowiki/>'''a'''<nowiki/>'''ndas.read_e'''<nowiki/>'''xc'''<nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/>'''el('''<nowiki/>'<nowiki/>'''c:\\경로.xlsx'''<nowiki/>'''')'''<nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/>''' | ||
− | + | 객체 = pandas.read_csv('''<nowiki/>''''c:\\경로.csv') | |
− | + | ||
− | + | 보통 첫번째 시트만 df로 만든다. | |
− | + | |저장했던 엑셀파일을 불러오면 저장한 df 그대로 사용되는 게 아니라, 엑셀의 제한된 기능에 따라 변형되기 때문에 칼럼을 다시 만져주어야 제대로 사용할 수 있다. 기본적으로 맨 윗줄을 칼럼 처리한다.(상관없으면 그냥 쓰고;) | |
+ | 때문에 df['열이름'] = pd.to_numeric(df['열이름']) 형태로 데이터형을 다시 통일, 설정해주어야 한다. | ||
+ | |||
+ | |||
+ | 인덱스 지정은 따로 하지 않는다. 'index_col=숫자' 옵션으로 인덱스를 지정할 수도 있다. | ||
+ | |||
+ | Sheet_name='시트명' 옵션으로 해당 시트를 열 수도 있다. | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| | | | ||
− | + | | | |
− | + | | | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | = Json = | |
+ | 데이터프레임을 Json으로 바꾸거나 Json을 데이터프레임으로. | ||
− | + | 범용적으로 쓰이는 데이터 전달 포멧. 장고 등 서비스에서 스프레드시트를 파일로 저장하는 것도 좋지만, json화 하여 저장하는 것도 방법이 될 수 있다. | |
{| class="wikitable" | {| class="wikitable" | ||
!과정 | !과정 | ||
76번째 줄: | 79번째 줄: | ||
!방법 | !방법 | ||
|- | |- | ||
− | | | + | |Json으로 변환 |
− | | | + | |데이터프레임을 json으로. |
− | | | + | |<syntaxhighlight lang="python"> |
− | + | import pandas as pd | |
− | + | ||
− | + | df = pd.read_excel(uploadedFile) # 어떤 방식으로든 df를 만들고.. | |
− | + | json_text = df.to_json() | |
+ | </syntaxhighlight> | ||
|- | |- | ||
− | | | + | |Json을 dataframe으로 |
− | | | + | |단순히 읽으면 된다. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|<syntaxhighlight lang="python"> | |<syntaxhighlight lang="python"> | ||
− | + | import pandas as pd | |
− | + | ||
− | + | df = pd.read_json('test.json') | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | [ | + | |
+ | = HTML = | ||
+ | 웹문서에서 읽어온 데이터를 바로 dataframe화 하는 경우도 필요하다. | ||
+ | {| class="wikitable" | ||
+ | ! 의도 | ||
+ | !방법 | ||
+ | !설명 | ||
+ | |- | ||
+ | |데이터 불러오기 | ||
+ | |객체 = pandas.read_html('''h<nowiki/>t<nowiki/>ml 문서''')'''<nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/><nowiki/>''' | ||
+ | |'''<nowiki/>'''html 문서의 데이터타입은 str이어야 한다. requests 등으로 웹문서를 불러와 변환해 넣으면 된다.'''<nowiki/><nowiki/><nowiki/>''' | ||
+ | |}표형 데이터는 쉽게 가져올 수 있다.<syntaxhighlight lang="python"> | ||
+ | page = requests.get(url) | ||
+ | tables = pd.read_html(page.text) | ||
+ | </syntaxhighlight> [굳이 .text 속성에 접근해야 하네;;? 그냥 객체와 text속성은 어떻게 다른지 보자.] | ||
+ | |||
+ | 여러 테이블이 있는 경우, 데이터프레임이 들어있는 리스트로 반환된다. |
2023년 2월 1일 (수) 12:38 기준 최신판
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_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['열이름']) 형태로 데이터형을 다시 통일, 설정해주어야 한다.
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속성은 어떻게 다른지 보자.]
여러 테이블이 있는 경우, 데이터프레임이 들어있는 리스트로 반환된다.