본문 바로가기

Python/Data analysis

(15)
[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 -------------------..
[Python] Data Analysis - DataFrame - join merge 는 특정 컬럼값을 기준으로 데이터를 병합하고, join 은 인덱스를 기준으로 데이터를 병합한다. how 옵션에는 left, right, outer, inner 옵션이 있다. how 옵션을 지정하지 않으면 기본 옵션은 left 입니다. df1 ---------------------------------------------------------- 종목코드종목명현재가 업종 전기전자005930삼성전자74400 화학051910LG화학896000 서비스업035720카카오121500 df2 ---------------------------------------------------------- 등락률 항목 은행2.92 보험0.37 화학0.06 전기전자-2.43 df1.join(other=df2) ----..
[Python] Data Analysis - DataFrame - merge 단순한 데이터프레임을 합치는 경우에는 concat 도 가능하지만 특정 컬럼값을 기준으로 데이터를 병합하기 위해서는 merge 를 사용해야 한다. 2개의 데이터프레임을 merge 하는 방법은 아래와 같다. df1 --------------------------------- 업종종목코드종목명 현재가 0전기전자005930삼성전자 74400 1화학051910LG화학 896000 2전기전자000660SK하이닉스 101500 df2 --------------------------------- 업종등락률 0은행2.92 1보험0.37 2화학0.06 3전기전자-2.43 merge 에서 inner / outer 의 차이는 아래와 같다. pd.merge(left=df1, right=df2, on='업종') ---------..