반응형
반응형

[python] 공공데이터 OPEN API의 xml 을 DataFrame으로 변환하기(feat. 코로나 확진자 수)

 

 

https://greendreamtrre.tistory.com/268

 

Python (파이썬) 공공데이터 수집 (Open API - XML)

공공데이터포털의 특징은 자료를 활용을 요약하자면 1. 회원 가입 후 '사용자 인증키'를 생성해야한다. 2. 이후 원하는 데이터를 '활용 신청'을 해서 승인이 떨어지고 활용 권한을 획득해야한다.

greendreamtrre.tistory.com

 

# 모듈 import
import requests
import pprint


#인증키 입력
encoding = '발급받은 인코딩 인증키를 복사하여 붙여넣기 해 주세요.'
decoding = '발급받은 디코딩 인증키를 복사하여 붙여넣기 해 주세요.'

#url 입력
url = 'http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19SidoInfStateJson'
params ={'serviceKey' : decoding , 'pageNo' : '1', 'numOfRows' : '10', 'startCreateDt' : '2020', 'endCreateDt' : '20211103' }

response = requests.get(url, params=params)

# xml 내용
content = response.text

# 깔끔한 출력 위한 코드
pp = pprint.PrettyPrinter(indent=4)
#print(pp.pprint(content))

### xml을 DataFrame으로 변환하기 ###
from os import name
import xml.etree.ElementTree as et
import pandas as pd
import bs4
from lxml import html
from urllib.parse import urlencode, quote_plus, unquote

## 각 컬럼 값 ## (포털 문서에서 꼭 확인하세요)
"""
SEQ : 게시글번호(국내 시도별 발생현황 고유값)
CREATE_DT: 	등록일시분초
DEATH_CNT: 	사망자 수
GUBUN: 	시도명(한글)
GUBUN_CN: 	시도명(중국어)
gubunEn: 시도명(영어)
INC_DEC: 전일대비 증감 수
ISOL_CLEAR_CNT: 격리 해제 수
QUR_RATE: 10만명당 발생률
STD_DAY: 기준일시
UPDATE_DT: 수정일시분초
DEF_CNT: 확진자 수
ISOL_ING_CNT: 격리중 환자수
OVER_FLOW_CNT: 해외유입 수
LOCAL_OCC_CNT: 지역발생 수

""" 

#bs4 사용하여 item 태그 분리

xml_obj = bs4.BeautifulSoup(content,'lxml-xml')
rows = xml_obj.findAll('item')
print(rows)
"""
# 컬럼 값 조회용
columns = rows[0].find_all()
print(columns)
"""

# 각 행의 컬럼, 이름, 값을 가지는 리스트 만들기
row_list = [] # 행값
name_list = [] # 열이름값
value_list = [] #데이터값

# xml 안의 데이터 수집
for i in range(0, len(rows)):
    columns = rows[i].find_all()
    #첫째 행 데이터 수집
    for j in range(0,len(columns)):
        if i ==0:
            # 컬럼 이름 값 저장
            name_list.append(columns[j].name)
        # 컬럼의 각 데이터 값 저장
        value_list.append(columns[j].text)
    # 각 행의 value값 전체 저장
    row_list.append(value_list)
    # 데이터 리스트 값 초기화
    value_list=[]

#xml값 DataFrame으로 만들기
corona_df = pd.DataFrame(row_list, columns=name_list)
print(corona_df.head(19)) 

#DataFrame CSV 파일로 저장
corona_df.to_csv('corona_kr.csv', encoding='utf-8-sig')
반응형
반응형

[python] perfect way to learn python in 10 days 

Day  1 : Programming Lang & its application
Day  2 : Basic concepts. Operators & more
Day  3 : String & variables
Day  4 : Exception & files
Day  5 : Function & modules
Day  6 : Control Structures
Day  7 : More Types
Day  8 : Functional programming
Day  9 : OOP concept
Day 10 : Revise DAY 1 to DAY 9

반응형
반응형

jupyter에서 출력을 하려고 실행을 했더니

'IOPub data rate exceeded' 라 하면서 뒤에 주저리주저리 뭐가 붙는 경우가 있습니다.

 

출력 데이터 rate 초과시 발생하는 오류인데 Juptyer의 환경설정에서 고칠 수 있습니다. 

'NotebookApp.iopub_data_rate_limit = 1000000' 으로 써져있는 곳을 바꾸면 되는데 복잡합니다.

 

환경설정 자체를 건드려 보겠습니다.

앞으로 모든 환경에서 초과 오류가 나오게 하고 싶지 않다면 이 방법으로 해결하면 됩니다.

cmd나 파워쉘을 켜서 다음을 입력합니다.

jupyter notebook --generate-config

그러면 경로가 하나 보입니다. 

저 경로로 찾아가 jupyter-notebook_config.py 파일을 메모장으로 엽니다.

그리고 NotebookApp.iopub_data_rate_limit 를 찾습니다. 저는 data_rate로 찾아서 아래와 같이 찾았습니다.

여기서 #을 지우고 뒤에 1000000을 1.0e10으로 고칩니다.

저장을 하고 메모장을 끕니다. 

 

 

 

https://seong6496.tistory.com/98

 

[Jupyter notebook]IOPub data rate exceeded

jupyter에서 출력을 하려고 실행을 했더니 'IOPub data rate exceeded' 라 하면서 뒤에 주저리주저리 뭐가 붙는 경우가 있습니다. 출력 데이터 rate 초과시 발생하는 오류인데 Juptyer의 환경설정에서 고칠

seong6496.tistory.com

 

반응형
반응형

Python array[::] 용법,  Extended Slices 

 

arr[::], arr[1:2:3], arr[::-1] 등으로 배열의 index에 접근하는 방법을 Extended Slices

 

15 Extended Slices

15 Extended Slices Ever since Python 1.4, the slicing syntax has supported an optional third ``step'' or ``stride'' argument. For example, these are all legal Python syntax: L[1:10:2], L[:-1:1], L[::-1]. This was added to Python at the request of the devel

docs.python.org

설명

arr[A:B:C]의 의미는, index A 부터 index B 까지 C의 간격으로 배열을 만들어라는 말입니다.
만약 A가 None 이라면, 처음부터 라는 뜻이고
B가 None 이라면, 할 수 있는 데까지 (C가 양수라면 마지막 index까지, C가 음수라면 첫 index까지가 되겠습니다.)라는 뜻입니다.
마지막으로 C가 None 이라면 한 칸 간격으로 라는 뜻입니다.

예시

>> arr = range(10)
>> arr
[0,1,2,3,4,5,6,7,8,9]
>> arr[::2] # 처음부터 끝까지 두 칸 간격으로
[0,2,4,6,8]
>> arr[1::2] # index 1 부터 끝까지 두 칸 간격으로
[1,3,5,7,9]
>> arr[::-1] # 처음부터 끝까지 -1칸 간격으로 ( == 역순으로)
[9,8,7,6,5,4,3,2,1,0]
>> arr[::-2] # 처음부터 끝까지 -2칸 간격으로 ( == 역순, 두 칸 간격으로)
[9,7,5,3,1]
>> arr[3::-1] # index 3 부터 끝까지 -1칸 간격으로 ( == 역순으로)
[3,2,1,0]
>> arr[1:6:2] # index 1 부터 index 6 까지 두 칸 간격으로
[1,3,5]

참고

반응형
반응형

파이썬 가르치는 4대 은행들…1년 만에 석사급 150명 양성

 

https://www.hankyung.com/economy/article/202105064284i

 

파이썬 가르치는 4대 은행들…1년 만에 석사급 150명 양성

파이썬 가르치는 4대 은행들…1년 만에 석사급 150명 양성, 박진우 기자, 경제

www.hankyung.com

'파이썬, 텐서플로우, 인공지능(AI) 기반 신용평가모형, 데이터 시각화….'


신한·국민·우리·하나 등 4대 은행이 내부 은행원들을 디지털 인력으로 전환하기 위해 도입한 교과목들이다. 지난 1년간 4대 은행이 디지털금융·인공지능(AI)·데이터 분석 석사 등 전문가 과정을 보낸 내부 직원이 총 150여명에 달하는 것으로 집계됐다. 우수 개발인력이 빅테크로 몰리면서 채용이 어려워지자 직접 개발인력을 키우겠다는 것이 은행권의 판단이다.

 

28일 업계에 따르면 4대 시중은행이 대학원 석사학위 과정이나 전문가과정을 통해 양성하는 디지털 전문인력은 158명으로 집계됐다. 국민은행(2018년)을 시작으로 신한·하나은행(2020년)이 내부 디지털·데이터 교육과정을 잇달아 도입한 결과다. 우리은행은 올초부터 관련 과정을 도입했다. 은행들은 기초지식 수준의 레벨1, 코딩 실습 위주인 레벨2, 인공지능(AI)이나 경영전문대학원(MBA) 등 석사과정 위주의 레벨3로 디지털 연수시스템을 꾸렸다. 각 레벨을 이수해야 다음 레벨을 공부할 수 있는 단계식 교육과정이다.

 

국민은행은 올해부터 수업마다 과제와 시험을 통과해야 수료할 수 있도록 교육강도가 높아졌다. KB에이스아카데미는 디지털 금융과 데이터 분석 영역에서 각각 1800명, 532명이 사내연수에 도전했다. 하지만 세 차례의 심사와 면접을 거쳐 최종 레벨을 통과한 직원은 2년여동안 12명, 16명에 불과할 정도로 난이도가 높다. 이들 중 20명은 성균관대 GSB AIMBA 과정을 진행 중이고, 나머지 인원은 카이스트 디지털금융MBA 과정을 밟고 있다. 국민은행 관계자는 "올해 해외온라인 석사학위과정인 코세라에 진학할 수 있도록 신규 프로그램을 만들고 있다"고 말했다.

 

신한은행은 디지털 교육과정에 참여한 인원만 1만3000명에 달한다. 가장 난이도가 높은 ‘디지털 스페셜리스트’(석사)에 참여한 직원은 53명으로 나타났다. 이들은 신한금융이 전 계열사에서 선발하는 고려대 금융공학 및 AI 석사 과정을 통해 위탁교육을 받고 있다. 신한금융 관계자는 "매년 석사과정 경쟁률은 10대 1 수준"이라며 "전 계열사에서 30~34명의 인원을 선발한다"고 말했다.

 

올해 7월부터는 자격증 취득을 중심으로 하는 디지털 베이직 과정과 외부기관에서 AI·데이터 분석 전공교육을 받는 AI·디지털 챔피언으로 교육 과정을 개편하기로 했다. AI챔피언 과정에는 파이썬과 텐서플로, 신용평가모형 개발 등의 교과목이 들어간다. 최종 관문인 디지털 마스터 과정은 챔피언 과정을 수료한 직원을 대상으로 신설될 예정이다.

 

하나은행은 총 80여개 과목으로 구성된 'DT유니버시티'를 지난해 6월 도입했다. 1만398명이 레벨1를 수강했는데, 레벨3까지 통과한 인원은 47명이다. 자격증 취득 전문 과정도 따로 꾸렸다. 데이터분석 준전문가(ADsP) 대비반에는 322명, SQLD 대비반에는 200명이 참여한 상태다.

 


우리은행도 올해부터 전 직원 대상의 디지털 연수 프로그램을 시작했다. 디지털 인사이트(9600명), 디지털 예비인력 양성(800명), 디지털 전문인력(30명) 순으로 난이도가 높다. 디지털 전문인력으로 뽑힌 30명은 카이스트 디지털금융 전문가과정(20명 선발)과 금융-IT 융합 AI·DX과정(10명 선발)에서 4개월간 연수를 받게 된다.

 


은행 관계자는 "데려올 수 있는 인원이 예전보다 역량이 부족하거나, 전문성 갖춘 개발 인력은 잘 오려고 하지 않는다"며 "내부 인력의 디지털·데이터 분야 전문성 강화에 초점을 맞추는 것이 낫다는 판단에 관련 과정을 확대하고 있다"고 말했다. 이어 "교육 이수 후 바로 퇴사하는 일이 없도록 의무근무기간을 정해 디지털 핵심 부서에서 근무하도록 할 계획"이라고 말했다.

반응형
반응형

 

1. tkinter 설치

 

먼저 tkinter를 설치해야겠죠.

저는 Mac 기준으로 설명을 드릴테지만 (놀랍게도 tkinter는 Mac에서도 작동합니다.)

Window도 동일합니다.

 

pip install tk

 

terminal에 위 명령어를 입력합시다.

주의할 점은 라이브러리 이름이 tkinter라고 해서 pip install tkinter라고 입력하면 설치되지 않습니다.

pip install tk라고 입력해야 합니다.

반응형

+ Recent posts