본문 바로가기

전체 글

파이썬 xlwings 엑셀 창 없이 작업하는 방법: 엑셀을 데이터프레임으로 읽어오기 python xlwings 라이브러리를 이용해서 엑셀에 데이터를 읽고 쓸 때 기본적인 세팅은 엑셀 창이 열리도록 되어있습니다. 하지만 종종 이 창을 띄우지 않고서 작업을 하고 싶은 마음이 들 때가 있습니다. 예를 들어 간단히 엑셀 파일에서 데이터만 읽어오면 되는 상황이 그렇습니다. 오늘은 엑셀 창 없이 xlwings 라이브러리를 이용해서 데이터를 판다스 데이터프레임 형태로 읽어오는 방법을 알아보겠습니다. 창 없이 xlwings를 사용하는 코드 패턴 xlwlings의 객체는 크게 다음과 같은 네 가지 유형이 있습니다. 객체의 계층 구조 순서대로 나열하면 App(엑셀 인스턴스), Book, Sheet, Range와 같습니다. 보통의 경우 xw.Book(파일명)를 바로 사용하여 엑셀 파일을 읽어왔지만, 창 없.. 더보기
파이썬 이미지 크롤링: 코드 세줄로 이미지 다운로드 받기 오늘은 딱 세줄의 코드로 웹 사이트에서 이미지를 다운로드하는 방법을 알아보겠습니다. 이미지 url을 이용해서 내 컴퓨터에 저장하는 방법은 여러 가지가 있지만 이 방법이 아마 가장 손쉬운 방법일 거라 생각합니다. 필요한 준비물은 다음과 같습니다. 1. 아나콘다가 설치된 주피터 노트북 환경 2. 다운로드하고자 하는 이미지 url 이미지 크롤링 코드 패턴 아래 코드를 실행시키면 현재 스크립트가 있는 위치와 동일한 폴더에 이미지가 저장되는 것을 확인할 수 있습니다. import urllib.request url = 이미지 url urllib.request.urlretrieve(url, '파일 이름') 예를 들어 아마존에서 상품 이미지를 다운로드하고 싶다면, 이미지 url을 알면 컴퓨터에 저장할 수 있습니다. 크.. 더보기
파이썬 변수의 사용 범위: 전역 변수(global variables), 지역 변수(local variables) 파이썬에서 변수는 이름 공간(namespace)에서 관리됩니다. 이름 공간은 변수의 이름을 정의해 둔 공간으로 크게 전역 이름 공간과 지역 이름 공간으로 나누어집니다. 전역 변수(global variables) 전역 변수는 함수 밖의 전역 공간에서 선언된 변수입니다. 따라서 함수 내부를 포함하여 스크립트 어디서든 접근할 수 있습니다. 전역 변수 만들기 x = "global" def do(): print("함수 내부의 x:", x) do() print("전역 공간의 x:", x) """ 함수 내부의 x: global 전역 공간의 x: global """ 이번에는 함수 내부에서 전역 변수 x의 값을 바꿔보겠습니다. x = "global" def do(): x = x * 3 print(x) do() """ U.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(3): 매 시간 메시지 보내기 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 이번에는 프로그램 종료 전까지 매 시간 새로운 뉴스를 전송해주는 봇을 만들겠습니다. 여러 가지 스케줄러를 사용할 수 있겠지만 사용이 손쉬운 APScheduler 라이브러리를 사용하겠습니다. 파이썬 스케줄러 만들기 스케줄러는 컴퓨터에서 원하는 작업을 특정 시간/주기에 실행할 수 있도록 일정을 관리해줍니다. 여러 가지 스케줄러가 있지만 매우 간단한 수준의 일정관리면 충분하기 때문에 파이썬 라이브러리를 이용하겠습니다. 스케줄러에게 시킬 일을 다음과 같습니다. 1. 한 시간마다 2. 뉴스 링크를 수집하고 3. 새로운 링크가 있으면 텔레그램 메시지를 나에게 보.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(2): 새로운 뉴스 링크만 추출하기 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 이번에는 텔레그램 봇을 생성하고, 이전 시간에 작성했던 뉴스 스크래핑 코드를 수정하겠습니다. 새로운 뉴스가 있으면 해당 링크만 리스트로 결과를 반환하고 만약 새로운 뉴스가 없다면 빈 리스트를 반환하도록 작성하겠습니다. 텔레그램 봇 만들기 우선 텔레그램 봇을 만들겠습니다. 텔레그램을 열고 BotFather를 검색합니다. 채팅창이 열리면 /start 를 입력하면 봇을 생성하고 관리할 수 있는 안내 문구를 띄어줍니다. 우리는 처음 봇을 만드는 입장이니까 /newbot이라고 입력하면 됩니다. 안내에 따라서 bot name과 username을 입력합니다. 모두.. 더보기
파이썬으로 뉴스 알림 텔레그램 봇 만들기(1): 뉴스 링크 수집하기 특정 업무나 투자 활동을 하는 경우 뉴스를 지속적으로 확인해야 하는 일들이 있습니다. 예를 들어 회사에서 IR, PR 업무를 담당하는 경우가 해당합니다. 또는 특정 주식 종목 등의 뉴스를 체크할 수도 있겠네요. 이번부터 세 차례에 걸쳐서 내가 원하는 특정 검색어를 기준으로 모바일 네이버 뉴스를 한 시간마다 푸시해주는 텔레그램 봇을 만드는 방법을 알아보겠습니다. 글 순서 (1) 사이트 구조 살펴보기, 뉴스 링크 수집하기 (2) 봇 만들기, 새로운 뉴스 링크만 추출하기 (3) 스케쥴러 만들기, 매 시간 메시지 보내기 사이트 구조 살펴보기 사이트 구조를 살펴보고 원하는 키워드로 뉴스 기사 링크를 수집하는 코드를 작성해 보겠습니다. 웹 스크래핑을 할 때 알아두면 좋은 한 가지 팁 모바일 사이트 버전을 찾아보는 .. 더보기
[파이썬 pandas] 주식 전 종목 코드(코스피, 코스닥) 구해서 데이터프레임으로 읽어오기 파이썬을 활용해서 계랑 투자를 해 볼까 고민하는 개인 투자자라면 필요한 것 중에 하나가 바로 종목 코드입니다. 다행히도 종목 코드 데이터는 한국 거래소에서 손쉽게 엑셀로 다운로드할 수 있습니다. http://marketdata.krx.co.kr/mdi#document=040601 한국거래소 홈페이지에서 [시장정보] > [상장현황] > [상장회사 검색]을 선택하면 됩니다. 아래와 같은 화면이 보인다면, 원하는 조건에 맞게 조회 버튼을 누른 후 엑셀로 다운로드하면 됩니다. 이제 이 데이터를 판다스에서 불러오겠습니다. 판다스에서 엑셀 데이터 읽어오기 판다스에는 엑셀 파일을 읽을 수 있는 read_excel()이라는 메서드를 제공하고 있습니다. 매개변수로 파일명(파일 경로)을 전달하면 엑셀 데이터를 불러옵니다... 더보기
[파이썬 pandas] 데이터프레임 컬럼 순서 변경, 추가, 이름 바꾸기 판다스를 사용하다 보면 생각보다 자주 필요한 기능이 칼럼의 순서를 바꾸고, 새 컬럼을 추가하고, 이름을 변경하는 것입니다. 사용법이 어려운 기능들은 아니지만 아직 pandas가 익숙하지 않은 분들은 종종 헷갈려하십니다. 이번 시간에는 칼럼을 다루는 세 가지 방법을 알아보겠습니다. 컬럼 순서 바꾸기 우선 오늘 예제로 사용할 데이터프레임을 만들겠습니다. # 라이브러리를 불러옵니다. import pandas as pd import numpy as np # 데이터프레임을 생성합니다. df = pd.DataFrame( {'name': ['KIM', 'LEE', 'SMITH','BROWN', 'MILLER'], 'age': [24, 32, 43, 24, np.nan], 'height': [178, 168, 171,.. 더보기