본문 바로가기

Python/Data analysis

(17)
[Practical Data Analysis] 2 - Calculating CGT on U.S. stocks 지난번에 환율정보를 기반으로 실제 거래 데이터를 이용하여 계속진행하겠습니다.다시 말하지만 파운드화로 보고서를 만드는 과정이고, 세금을 계산하는 것은 아니고 세금의 기준이되는 수익까지만 계산합니다. 여기서 잠깐) 내가 사용하는 주피터 노트북의 현제 폴더위치를 알아보자. 그럼 본론으로 돌아가서 , 주식 거래내역을 엑셀 파일로 다운받았고,데이터프레임으로 엑셀파일 로딩하는 방법 import pandas as pd# 파일 경로file_path1 = './source/2024 details.xls' # 또는 example.xlsfile_path2 = './source/2025 details.xls' # 또는 example.xls# Excel 파일 읽기df1 = pd.read_excel(file_path1) ..
[Practical Data Analysis] 1 - Calculating CGT on U.S. stocks 한국에서 미국주식을 매매하면 국세청에 양도세를 신고해야 합니다. 이건 개인이 할 필요는 없고 증권사에서 제공하는 대리 신고 서비스를 이용하면 됩니다. 아주 쉽습니다. 세금만 잘 내면 됩니다. 다른 나라에 신고하는 경우를 상상해서, 거래 데이터를 변환하는 방법에 대해서 알아보겠습니다. CGT - Capital Gains Tax 파운드화로 보고서를 만드는 과정입니다. 세금을 계산하는 것은 아니고 세금의 기준이되는 수익까지만 계산하는 단계입니다. 환율정보는 인터넷에서 구했습니다. 월평균 자료가 다운로드 받기 편해서 받았습니다. 일일 환율정보 파일을 받아도 별차이는 없습니다. exrates-monthly-0122.csvexrates-monthly-0123.csvexrates-monthly-0124.csvexra..
[Python] Data Analysis - DataFrame - excel 이번에는 데이터프레임을 엑셀로 저장/읽는 방법에 대해서 알아보겠습니다. CSV 파일로 저장하기 df --------------------------------------------------- 종목명현재가등락률 종목코드 0377303R15107.36 0363603SOFT17901.65 005760ACTS11851.28 df.to_csv("data.csv") 엑셀로 저장하기 df.to_excel("data.xlsx") # 시트 이름을 설정 df.to_excel("data2.xlsx", sheet_name="종목정보") # 인덱스 제거 df.to_excel("data3.xlsx", index=False) # 컬럼 제거 df.to_excel("data4.xlsx", header=False) 엑셀 파일 불러오기..
[Python] Data Analysis - DataFrame - Melt 이번에는 melt 에 대해서 알아보겠습니다. melt 메서드는 컬럼의 수가 많아서 와이드 포맷의 데이터프레임을 세로로 긴 포멧의 데이터프레임으로 구조를 변경할 수 있다. df -------------------------------------------------- 종목코드종목명시가고가저가종가 0005930삼성전자75800760007410074400 1035720카카오147500147500144500146000 2000660SK하이닉스9960010150098900101500 melt 를 적용하면 모든 컬럼명은 variable 컬럼으로 이동하고 값들은 value 컴럼으로 이동한다. df.melt() melt 사용시, 유지하고 싶은 컬럼이 있다면 id_vars 옵션을 사용하여 유지할 수 있다. df.melt..
[Python] Data Analysis - DataFrame - Pivot 이번에는 pivot 에 대해서 알아보겠습니다. pivot 은 데이터를 재구성하여 데이터 이해하기 쉽게 변형하는 과정입니다. df --------------------------------------- 날짜종목명종가 02021-08-12삼성전자77000 12021-08-13삼성전자74400 22021-08-12LG전자153000 32021-08-13LG전자150500 42021-08-12SK하이닉스100500 52021-08-13SK하이닉스101500 pd.pivot(data=df, index="날짜", columns="종목명", values="종가") --------------------------------------- 종목명LG전자SK하이닉스삼성전자 날짜 2021-08-12153000100500770..
[Python] Data Analysis - DataFrame - Stack / Unstack 이번에는 Stack / Unstack 에 대해서 알아보겠습니다. 가끔은 컬럼을 인덱스로 옮기거나 반대로 인덱스를 컬럼으로 옮기는것이 데이터를 다루는데 또는 이해하는데 효과적일 때가 있다. stack 메서드는 컴럼을 인덱스로 변경할 수 있다. 반대로 unstack 메서드는 인덱스를 컬럼으로 변경한다. df ----------------------------------- 영업이익당기순이익 컨센서스잠정치컨센서스잠정치 2020/06100900800700 2020/0912001400900800 # 기본적으로 높은레벨(level 0 가 낮은 레벨임)의 컬럼이 인덱스로 변경된다 df.stack() ----------------------------------- 당기순이익영업이익 2020/06잠정치700900 컨센서스..
[Python] Data Analysis - DataFrame - multi-column 이번에는 멀티컬럼에 대해서 알아보겠습니다. 멀티컬럼은 멀티인덱스와 구조만 다릅니다. from pandas import DataFrame data = [ [100, 900, 800, 700], [1200, 1400, 900, 800] ] columns = [ ['영업이익', '영업이익', '당기순이익', '당기순이익'], ['컨센서스', '잠정치', '컨센서스', '잠정치'] ] index = ["2020/06", "2020/09"] df = DataFrame(data=data, index=index, columns=columns) df ------------------------------------------ 영업이익당기순이익 컨센서스잠정치컨센서스잠정치 2020/06100900800700 2020/09..
[Python] Data Analysis - DataFrame - multi-index 이번에는 멀티 인덱스에 대해서 알아보겠습니다. df --------------------------------------- 23 01 영업이익컨센서스10001200 잠정치9001400 당기순이익컨센서스800900 잠정치700800 # 인덱스 이름 지정 및 컬럼명 지정 df.index.names = ["재무연월", ""] df.columns = ["2020/06", "2020/09"] df --------------------------------------- 2020/062020/09 재무연월 영업이익컨센서스10001200 잠정치9001400 당기순이익컨센서스800900 잠정치700800 멀티 인덱스에서 인덱싱 및 슬라이싱 하는 방법 레벨0 인덱스를 이용한 인덱싱 df -------------------..