반응형
https://stricky.tistory.com/115
멋진 제목이다.
파이썬으로 역대 로또 당첨번호....
단번에 끌려서 검토하고, 따라해보고, 조금 손도 봐봤다.
from google.colab import drive
drive.mount('/gdrive', force_remount=True)
첫번째는 구글 드라이브를 활용하기 위해 마운트를 하는 코드를 넣었다.
import requests
import pandas as pd
import json
원래 저자분은
from urllib.request import urlopen
을 사용하셨지만, 나는 간단하게 requests 만 사용하였다. (아는게 그거 뿐이라서)
df_all=pd.DataFrame()
for i in range(1,1000):
url='http://www.nlotto.co.kr/common.do?method=getLottoNumber&drwNo='+str(i)
res=requests.get(url)
data=res.json()
df_add=pd.DataFrame(data, index = [str(i)])
df_all=df_all.append(df_add)
우선 df_all로 모든 데이터를 모을 데이터프레임을 생성하였다.
원래 저자분과 마찬가지로 range를 1000으로 설정하여, for문을 구성하였다.
url도 같은 것을 사용하였다.
resquests.get으로 자료를 받아서
json()으로 변형하였다.
평소에는 df=pd.DataFrame(data)로 딕셔너리를 부르면 됐었는데,
에러가 난다.
ValueError: If using all scalar values, you must pass an index
인덱스가 없어서 나는 에러란다. 아무래도 딕셔너리안에 데이터가 한 세트 뿐이다보니 인덱스로 잡을수가 없는거 같다.
구글 검색으로 index=[0]을 넣으면 된다는 글을 보고 해봤더니 에러가 안난다.
그래서 조금 변형해서, index=[str(i)]를 첨가하였다.
즉, 회차가 인덱스가 되도록 했다.
df_all.to_csv("/gdrive/My Drive/Colab Notebooks/lotto/winning.csv")
df_all.head()
이후 데이터프레임을 csv로 저장하였다.
별 무리없이 진행되었다.
원래 저자님이 겪으셨던 쉼표 문제는 없었다.
다만, 숫자를 보기 좋게 처리하는 과정은 여전하다.
좋은 포스팅을 해주신 nice sTricky 님께 좋은 자료 감사하다는 말씀을 드리며 포스팅을 마친다.
반응형
'AI코딩' 카테고리의 다른 글
예가 정규분포 그려보기 (0) | 2020.04.05 |
---|---|
판다스 데이터프레임으로 json파일 불러오기 (0) | 2020.03.08 |
광역단체별 공시지가 파일을 자치구 별로 구분하여 파일 만들기 (1) | 2020.03.06 |
공공데이터포털 출력결과 국문 영문 필드명 교체하기 (0) | 2020.02.29 |
Draftsight 폰트 깨짐현상 해결하기 (0) | 2020.02.13 |