본문 바로가기

전체 글

[파이썬] pandas melt(), value_counts(): 역대 로또 당첨번호 빈도 세기 예제 로또 사는 친구를 보니 문득 두 가지 사소한 궁금증이 생겼습니다. 1) 역대 로또 당첨번호 중 가장 많이 나온 숫자는 뭘까 2) 당첨 번호 구간별 출현 비중은 어떨까 매번 추첨 행위가 독립 시행이기 때문에 서로 아무 상관 관계도 없는 건 알지만, 재미 삼아해 해 봤습니다. 역대 로또 당첨결과 데이터 수집하기 로또 사업자인 동행복권 사이트에 들어가 보니 엑셀 다운로드 기능을 제공하고 있습니다. 따로 제공 안 하면 이거 스크래핑을 900번 정도 해야 하나 싶었는데 다행입니다. 엑셀 데이터 살펴보기 깔끔한 테이블 형태의 데이터를 기대했지만 템플릿(서식) 형태의 파일입니다. 이렇게 생긴 데이터를 가지고도 당첨 번호를 셀 수는 있겠지만 노가다를 해야 할 것 같습니다. 노가다는 제 취향이 아니기 때문에 pandas.. 더보기
웹 페이지 텍스트 추출해서 단어 빈도수 세기 예제 웹 페이지에서 텍스트를 추출하고 단어별 빈도수를 세어보겠습니다. 불용어 등을 처리하지 않은 간단한 버전입니다. 1. 웹 페이지에서 텍스트 추출하기 - 이번 예제에서 사용할 텍스트는 이란의 미사일 발사에 대한 트럼프 대통령의 연설문입니다. import requests from bs4 import BeautifulSoup url = 'https://www.voanews.com/middle-east/voa-news-iran/full-text-trumps-speech-iran' html = requests.get(url) soup = BeautifulSoup(html.text) content = soup.select_one('.article__body p:nth-child(2)').get_text() print.. 더보기
파이썬을 이용해서 단어 빈도 세기: 이 글의 주요 내용은 무엇일까? 긴 문서를 읽다 보면 한 번씩 '아 귀찮다'라는 생각이 듭니다. 누가 와서 간단히 요점만 말해주면 좋을 것 같습니다. 글의 주요 내용을 어떻게 하면 간단히 알아챌 수 있을까요? 이렇게 생각해 볼 수 있을 것 같습니다. 글쓴이는 말하고자 하는 내용을 강조하기 위해 특정 단어들을 더 많이 사용했을 것이다. 이제 남은 일은 단어들이 언급된 빈도를 세어보는 일입니다. 하지만 단어 빈도를 세는 일은 사람이 하기에는 적합한 일이 아닙니다. 컴퓨터가 하기에 적합한 일이죠. 파이썬에게 문서 내의 각 단어의 빈도를 세어달라고 하겠습니다. 이번 글에서는 2020년 대통령 신년사로 빈도 분석을 해보았습니다. 한나눔 형태소 분석기로 명사만을 추출했습니다. 상위 단어를 보면 것(할 것, 될 것, 갈 것 등), 수(할 수, 갈 .. 더보기
[파이썬] 윈도우에 KoNLPy 설치하기: JDK 설치부터 실행까지 KoNLPy를 설치하고 사용하는 과정에서 겪은 에러 사항을 정리합니다. 문제의 발단은 공식문서를 읽어보지 않고 설치 및 실행한 것이었습니다. 당당히 실행을 시켰는데 아래와 같은 에러가 출력되었습니다. 공식문서를 살펴보면 아래와 같은 안내 문구가 쓰여있습니다. 안내 사항을 차례대로 따라가 보겠습니다. 1. JDK 설치 - 안내에서 알려주는 JDK 설치 링크를 따라갑니다. 본인의 OS에 맞게 파일을 다운로드하고 설치합니다. - 설치 경로가 이후 과정에서 필요하니까 기억해둡니다. 2. JAVA_HOME 설정 - [제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 환경 변수] 클릭 - 환경 변수 창에서 시스템 변수(S)의 [새로 만들기]를 선택 - 변수 이름과 변수 값을 입력 3. JPype1 설치.. 더보기
[파이썬] pandas 데이터프레임을 HTML 테이블 태그로 변환하기 판다스에서 작업을 하다보면 결과물인 데이터프레임을 이메일, 웹사이트 등에 붙여넣고 싶을 때가 종종있습니다. 스크린 샷으로 붙여넣을 수도 있겠지만 HTML 테이블 태그를 삽입한다면 더 깔끔하고 보기 좋을겁니다. 이번 시간에는 DataFrame을 HTML 형식으로 변환시켜주는 메서드 to_html()에 대해 알아보겠습니다. 1. 데이터프레임을 HTML 테이블 태그로 변환하기 [In] import pandas as pd # 데이터프레임 샘플 df_sample = pd.DataFrame( {'name': ['Kim', 'LEE', 'Park', 'Choi'], 'math': [88, 74, 72, 85], 'english': [80, 90, 78, 80] }) # HTML로 변환하기 html = df_sampl.. 더보기
역대 로또 당첨번호 중 가장 많이 나온 숫자는? 주 1회 추첨하는 로또. 1회를 시작으로 역대 로또 당첨번호 중 가장 많이 나온 숫자는 무엇인지 알아보았습니다. 현재 로또 사업자인 동행복권 사이트에서 데이터를 다운받아 세어보았습니다. 당첨번호만 집계한 숫자로 보너스번호는 제외된 수치입니다. 역대 로또 당첨 번호 중 가장 많이 나온 번호 - 기간: 1회~894회 - 보너스 번호 제외 1회부터 894회까지 역대 로또 당첨번호 중 가장 많이 나온 번호는 34번으로 141회가 나와 가장 많이 등장했습니다. 이어서 43번이 132회, 17번이 131회, 27번이 131회, 40번이 130회, 18번 128회, 45번 128회, 39번 127회, 12번 127회, 1번 127회 순으로 많았습니다. 역대 로또 당첨번호 구간별 출현 비중 1회부터 894회까지 역대 .. 더보기
[파이썬] 여러 파일의 이름을 한번에 변경하기 파이썬에서는 os 모듈의 rename() 메서드를 사용해서 파일 또는 폴더의 이름을 간단히 변경할 수 있습니다. 예를들어 특정 폴더 안에 여러개의 사진 파일이 있을때, 이 사진들의 이름을 차례대로 1, 2, 3와 같이 바꿔주고 싶습니다. 이때 해야하는 일은 크게 두 단계를 거칩니다. 1) 사진이 있는 폴더에 접근한다. 2) 차례대로 파일 이름을 변경하고 저장한다. 코드 예시 1) 사진이 있는 폴더에 접근한다. import os # 주어진 디렉토리에 있는 항목들의 이름을 담고 있는 리스트를 반환합니다. # 리스트는 임의의 순서대로 나열됩니다. file_path = 'C:\\Users\\jeong\\Desktop\\사진\\pictures' file_names = os.listdir(file_path) fil.. 더보기
파이썬을 엑셀처럼 사용하기 (7): 피벗 테이블 만들기 pandas pivot_table() 파이썬을 엑셀처럼 사용하기 시리즈 (1) 엑셀이 있는데 왜 파이썬을 배워야 하지? (2) 데이터 열기 pandas read_excel() (3) 데이터 정렬하기 pandas sort_values() (4) 데이터 필터링하기, 비교 연산자 pandas filtering (5) 사칙연산하기 pandas arithmetic (6) 데이터 합치기 pandas merge() (7) 피벗 테이블 만들기 pandas pivot_table() ✔ 실습하기 위해서는 파이썬 아나콘다와 주피터 노트북이 설치되어있어야 합니다. - [파이썬] 파이썬 아나콘다 설치 방법, 파이썬 설치 방법 - [파이썬] 주피터 노트북(jupyter notebook) 사용법 ✔ 실습 데이터는 제 깃헙에서 받을 수 있습니다. 데이터1, 데이터2 엑.. 더보기