본문 바로가기

Code Snippets/Pandas

(6)
데이터프레임을 이미지 파일로 저장 데이터프레임을 누구와 공유하고 싶을 때는 이미지 파일로 저장해서 공유하는 것이 제일 효과적이다. 이미지 파일 저장은 dataframe_image라는 외부 라이브러리 이용하면 간편하게 할 수 이싿. (https://github.com/dexplo/dataframe_image) ## 먼저 pip install dataframe_image import dataframe_image as dfi df1.export(mydf_styled, 'df_styled.png')
[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..
[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] 여러개의 데이터프레임을 효율적으로 합치는 방법 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..
중부원점(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..