본문 바로가기

pandas

(8)
[Pandas] 데이터프레임 제목(Caption) 꾸미기 판다스의 Styler Object를 이용하면 아래와 같이 데이터프레임에 Caption 형태로 제목 및 설명을 추가헌 후 내가 원하는 방식으로 꾸며줄 수 있다. 여기에서는 세부적으로 아래 3가지 기능이 추가되어 있다. 1) Multiline으로 내용 추가하기 2) 내용 색을 회색으로 바꾸기 3) 내용의 정렬을 왼쪽으로 하기 코드는 다음과 같다. ## 먼저 캡션 달기 : f-string으로 변수를 넣어주고, 태그 포함으로 줄을 바꿔주기 mycaption = f"\ {mydate_str}({weekdays[mydate.weekday()]}) 옵션현황 \ - 코스피 / 코스피200 : {kospi} / {kospi200} \ - 유력 행사구간 : {put_value} ~ {call_value} \ - 다음 만기..
[Pandas] 특정 조건을 만족하는 행 서식 변경 Pandas에서는 Styler Object가 있다. 기존의 dataframe을 기반으로 만들어진 HTML Table인데, Caption을 달거나 cell 색을 변경하는 등 각종 꾸미기가 가능하다. 구체적인 내용은 아래 링크를 참고하면된다 (https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html) 아래 처럼 특정 조건을 만족하는 행에 대해서, 열의 일부에 대한 서식만 바꾸는 것은 아래 코드를 이용해서 가능하다. # 조건 1) 데이터 중 콜행사가가 현재 코스피200 지수와의 차이가 가장 작은 행을 선택 highlight_c = lambda x : ['color:red' if abs(x['콜_행사가'] - kospi200) == abs(newdf..
신재생에너지 공급인증서(REC) 대시보드 (feat. RPS 제도) DEMO 및 주요 기능 https://hanalia.github.io/react_rec_hosting/ 1. 주 2회(매주 수요일, 금요일) 최신 REC 가격 자동 업데이트 2. Recharts 라이브러리를 사용하여 최근 가격 동향에 대한 그래프 시각화 3. React-Table 라이브러리를 활용한 테이블 구현 (Sorting, Pagination 기능 포함) 4. 데이터 CSV 내보내기 기능 추가 신재생에너지 공급인증서(REC, Renewable Energy Certificates)는 정부가 신재생에너지 발전사업자에 발급해주는 증명서류 한국의 현행 신재생에너지 정책에 의하면, 발전설비규모 500MW 이상인 발전사업자는 총 발전량의 일정 비율 이상을 신재생에너지원으로 발전해야 하는 의무가 있음. (= 신..
[Pandas] 짝수행, 홀수행만 뽑아내기 원본 데이터프레임이 이렇게 있을 때 1) 짝수행만 뽑아내기 df3 = df2.iloc[::2,:] df3 2) 홀수행만 뽑아내기 df3 = df2.iloc[1::2,:] df3 코드 해석 df2.iloc[1::2,:] df [a : b : c, : ]일 때, 첫번째 [a : b : c] 부분은 행을 선택하는 부분 [:]부분은 열을 고르는 부분 1) [a : b : c] 는 'a 행부터 시작해서, b행까지 선택하고, step은 c' 만약 a가 생략되어 있으면 첫행 (0행) 부터 선택 만약 b가 생략되어 있으면 끝까지 선택 그래서 [1::2]는 '1행부터 끝까지, step(간격)은 2로 두고 선택하기 2) [:]은 모든 행/열을 선택한다는 뜻 (그래서 df2.iloc[:,:]는 df2랑 같음)
[Pandas] CSV 파일 불러올 때 팁 [encoding, datetime, leading zeros etc.] 판다스로 전처리를 하게 되는 raw data가 CSV 파일 형태로 주어지는 경우가 가장 흔한 것 같다. CSV 파일을 데이터프레임으로 불러올 때 알아두면 유용한 코드들을 모아보았다. 1. CSV를 그냥 df로 가져오는 방법 import pandas as pd df = pd.read_csv ('file_name.csv') print(df) 2. CSV 불러올 때 index column 안불러오고 싶을 때 원래 CSV 파일에는 index column이 없는 경우가 많지만, 내가 pandas로 전처리한 결과값을 csv 파일로 저장해두고, 이를 나중에 불러 올 때는 index column이 갑자기 생겨서 이를 지우고 싶을 때가 있다. df = pd.read_csv('mydf.csv',index_col=0) #애..
[Pandas] 여러개의 데이터프레임을 효율적으로 합치는 방법 Pandas로 데이터 전처리를 하다보면 여러개의 데이터프레임을 합쳐야 하는 경우가 굉장히 많다. 그냥 빈 데이터프레임을 만든 후, append로 데이터프레임을 계속 키워나가도 되긴 하지만, 이 경우 속도 면에서 엄청난 답답함을 경험하게 된다. 주로 아래 구조로 합치는데, 소요시간 및 리소스 측면에서 매우 만족스럽다. # 1단계 : 내가 합칠 데이터프레임들을 담을 list 만들기 dfs = [] # 2단계 : for loop를 통해서 df를 하나씩 만들고, list 안에 담아두기 for i in range (0,100): small_df = myfunction(i) dfs.append(small_df) # 또는 for small_df in 'some_function_that_yields_dataframes..
[텔레그램 봇] 하나은행 환율 매매기준율 알리미 구현 사례 Why? 왜 이걸 만들었는가 회사 동기가 '이런 기능을 해주는 프로그램이 있었으면 좋겠다' 고 해서 만들어 보았다. 본인은 환율을 유심히 들여다 보는 경우가 아니지만, 환율에 민감한 분들은 당일 하나은행의 1회,2회, 그리고 가장 마지막으로 업데이트된 매매기준율을 참고한다고 한다. '그냥 최신 매매기준율만 참고하면 되는데 왜 1,2회를 참고하는지 물어보니, 실제 당일의 매매기준율 추이를 결정하는 매우 중요한 Factor가 1,2회 매매기준율이라고 한다. (역시 모든 심리는 첫 거래에 다 반영이 되나 보다) 프로젝트 개요 언어 : Python 주요 패키지(Framework) : Python-Telegram-Bot - 대화형 로직을 쉽고 빠르게 짤 수 있는 툴이다 (Telegram API가 애초에..
중부원점(EPSG:2097) 위도·경도(WGS84)로 변환 (연산 속도 높이기) 공공데이터로 받은 자료가 위치 정보를 가지고 있지만, 데이터가 위도 경도가 아닌 중부원점 좌표로 되어 있다. 현재 위치 기준으로 거리 계산, 지도에 표시 등의 작업을 위해서는 WGS84 좌표계로 변환하는 작업이 필요하다. 이 작업은 pyproj 라이브러리를 이용해서 아래와 같이 비교적 간단히 수행할 수 있다. # 라이브러리 가져오기 import from pyproj import Proj, transform import pandas as pd # Projection 정의 # 중부원점(Bessel): 서울 등 중부지역 EPSG:2097 proj_1 = Proj(init='epsg:2097') # WGS84 경위도: GPS가 사용하는 좌표계 EPSG:4326 proj_2 = Proj(init='epsg:432..