본문 바로가기

Prev Contents/Automation tools

(39)
[엑셀이 편해지는 파이썬] 12장. 사용자 정의 함수 (327~359p) 12장. 사용자 정의 함수¶아직 macOS에서 user-defined function (UDF)를 지원하지 못하여 실행할 수 없다. 12.1 UDF 시작하기¶1) 애드인 - 배포에 필수는 아니지만 2) VBA 프로젝트 개체 모델에 안전하게 엑세스할 수 있음 체크 박스 활성화 12.1.1 UDF 빠른 시작¶윈도우의 엑셀 - 엑셀윙스 애드인에서 Import Functions 버튼 활성화 이 때 백그라운드에서 파이썬이 실행 중이며, 파이썬 스크립트에 정의한 함수를 불러들여 엑셀에서 사용 가능하다. In [ ]: # UDF 스크립트 파일의 예 # 윈도우용 엑셀 전용으로 macOS에서는 아직 구현이 안 되었다. import xlwings as xw @xw.func def hello(name): return f"H..
[엑셀이 편해지는 파이썬] 11장. 파이썬 패키지 추적기 (293~326p) 11장. 파이썬 패키지 추적기¶11.1 우리가 만들 프로그램¶packagetracker 디렉터리 내의 packagetracker.xlsm 파일을 열어 보자. 11.2 핵심 기능¶11.2.1 웹 API¶GET 요청 - 브라우저는 서버에 해당 웹 페이지를 요청, 혹은 데이터를 요청 (json 형태로 받을 수 있다.) POST 요청 - 웹 페이지에 연락처 정보를 입력하는 등 서버에 데이터를 보낼 때 사용 json 모듈: 파이썬 딕셔너리를 json 문자열로 그 반대도 가능 REST API - 웹 API라는 용어 대신 자주 쓰이며, 상태가 없는 자원의 형태로 정보에 접근한다. 상태가 없다는 것은 REST API에 보내는 정보는 항상 완전히 독립적이며, 뭘 요청하는지 항상 조목조목 세세히 전달해야 한다는 뜻이다. ..
[엑셀이 편해지는 파이썬] 10장. 파이썬으로 강화된 엑셀 도구 (277~292p) 10장. 파이썬으로 강화된 엑셀 도구¶9장은 파이썬 스크립트를 만들어 엑셀을 자동화하는 방법이라면, 여기는 파이썬 부분을 숨기고 일반적인 매크로 활성화 워크북처럼 만드는 것이 목표다. 10.1 엑셀을 프런트엔드로 사용하기¶10.1.1 엑셀 애드인¶엑셀에서 파이썬 스크립트를 호출하려면 애드인을 설치해야 한다. In [ ]: # 콘다를 사용하는 경우 # 아나콘다 프롬프트에서 애드인 설치하기 !xlwings addin install xlwings version: 0.24.9 Successfully installed the xlwings add-in! Please restart Excel. Successfully enabled RunPython! In [ ]: # 설치 # 애드인의 상태 보기 # 버전, xlwi..
[엑셀이 편해지는 파이썬] 9장. 엑셀 자동화 (245~275p) 9장. 엑셀 자동화¶9.1 엑셀윙스 시작하기¶9.1.1 엑셀을 데이터 뷰어로 사용하기¶매번 데이터프레임에서 작업하고 엑셀이 어떻게 변했는지 확인하기 귀찮고 힘들다. to_clipboard()를 사용해 엑셀에 붙여 넣을 수도 있지만, 엑셀윙스의 view 함수를 써보자. In [ ]: import datetime as dt import xlwings as xw import pandas as pd import numpy as np df = pd.DataFrame(data=np.random.randn(100, 5), columns=[f"Trial {i}" for i in range(1, 6)]) df Out[ ]: Trial 1 Trial 2 Trial 3 Trial 4 Trial 5 0 0.700193 0.6..
[엑셀이 편해지는 파이썬] 8장. 판다스를 사용한 엑셀 파일 조작 (211~242p) 8장. 리더와 라이터 패키지를 이용한 엑셀 파일 조작¶8.1 리더와 라이터 패키지¶8.1.1 언제 어떤 패키지를 사용할 지 선택하기¶ OpenPyXL은 읽기, 쓰기, 편집이 모두 가능하지만, XlsxWriter는 쓰기만 가능 OpenPyXL은 VBA 매크로를 포함한 엑셀 파일을 더 쉽게 만들 수 있다. XlsxWriter는 문서화가 더 잘 되어 있다. XlsxWriter는 OpenPyXL보다 빠른 편이지만, 작성하는 워크북의 크기에 따라 그리 큰 장점이 아닐 수 있다. read_excel, to_excel 함수, ExcelFile이나 ExcelWriter 클래스에서 engine인자에 패키지 이름을 소문자로 전달 8.1.2 excel.py 모듈¶ 여러 패키지가 있으므로 패키지가 전환되어 문법이 다른 경우에..
[엑셀이 편해지는 파이썬] 7장. 판다스를 사용한 엑셀 파일 조작 (197~210p) 7장. 판다스를 사용한 엑셀 파일 조작¶7.1 케이스 스터디: 엑셀 보고서¶대리점 별 / 월 별 전체 매출의 엑셀 보고서를 만들어 보자. In [ ]: import pandas as pd df = pd.read_excel("../sales_data/new/January.xlsx") df.info() sales_report_pandas.py에 스크립트를 작성 7.2 판다스로 엑셀 파일 읽고 쓰기¶7.2.1 read_excel 함수와 ExcelFile 클래스¶ In [ ]: # sheet_name, skiprows, usecols 인자로 판다스가 읽어들일 셀 범위를 지정 df = pd.read_excel("../xl/stores.xlsx", sheet_name="2019", skiprows=1, usecol..
[엑셀이 편해지는 파이썬] 6장. 판다스와 시계열 분석 (175~193p) 6장. 판다스와 시계열 분석¶ 엑셀의 한계점 1) 엑셀의 허용 행수보다 데이터가 더 빨리 쌓일 때 2) 더 정밀한 날짜와 시간의 처리가 필요할 때 (시간대/나노초) 3) 일 단위를 월 단위로 바꾸는 기능같은 것도 없다. 6.1 DatetimeIndex¶6.1.1 DatetimeIndex 생성¶date_range 함수 In [ ]: # SNIPPET & Example import pandas as pd import numpy as np pd.options.plotting.backend = "plotly" # 시작하는 타임스탬프, 데이터 포인트 개수, 빈도를 기준 # 타임인덱스 만들기 (D: 매일) daily_index = pd.date_range("2020-02-28", periods=4, freq="D"..
[엑셀이 편해지는 파이썬] 5장. 판다스와 데이터 분석 (123~173p) 5장. 판다스와 데이터 분석¶판다스의 벡터화를 이용 - 코드를 배열 기반으로 간결하게 작성할 수 있다. 데이터 정렬 - 여러 개의 데이터 집합을 다룰 때 데이터 불일치가 생기지 않도록 한다. 5.1 데이터프레임과 시리즈¶데이터프레임 - 2차원 넘파이 배열 + 열과 행에 레이블이 있고, 각 열에 다른 형태의 데이터 타입을 저장할 수 있다. 시리즈 - 데이터프레임에서 한 행 혹은 한 열을 떼어 내면 1차원 시리즈가 되는데, 여기에 레이블이 붙어 있는 것이라 할 수 있다. 그러므로, 데이터프레임은 파이썬 기반 스프레드시트라 할 수 있다. In [ ]: # pd.read_excel() 사용하여 엑셀 파일 읽어 들이기 # python >= 3.9, pandas >= 1.2이어야 xlsx를 읽어 들인다. impor..