Python

    Pandas - 날짜 단위로 그룹화하기 resample()

    시카고의 범죄 발생 시각을 기록한 데이터가 있다. 이 데이터로 prophet 라이브러리를 사용해 미래에 범죄가 얼마나 발생할지 예측하려 한다. prophet 참고: https://donghyeok90.tistory.com/190 Prophet 라이브러리를 사용한 Time Series(시계열) 데이터 예측 1. Prophet 라이브러리 페이스북이 개발한 일변량(하나의 변수) 시계열 예측을 위한 오픈소스 라이브러리 경향성(Trends), 계절성(seosonality), 휴일(holidays)을 반영하는 모델이다. 계절적 효과가 강하고 donghyeok90.tistory.com groupby 함수를 이용해서는 날짜데이터를 년단위, 월단위, 일단위 등으로 그룹화 할 수 없다. 날짜 단위로 그룹화하기 위해 pan..

    Python 으로 압축파일 풀기

    import zipfile # 파일을 불러옴 file = zipfile.ZipFile('/tmp/horse-or-human.zip') # /tmp/horse-or-human에 모든 압축 풀기 file.extractall('/tmp/horse-or-human')

    Plotly 서브 플롯 그리는 법

    from plotly.subplots import make_subplots import plotly.graph_objects as go fig = make_subplots(rows=1, cols=3) df_bar = df_bar.sort_values('lsr_work', ascending=False) fig.add_trace(go.Bar(x=df_bar.index, y=df_bar['lsr_work'], name='평일 여가시간'), row=1, col=1) df_bar = df_bar.sort_values('lsr_weekend', ascending=False) fig.add_trace(go.Bar(x=df_bar.index, y=df_bar['lsr_weekend'], name='주말 여가시간'), ..

    Numpy/Pandas 에서 datetime 다루기

    파이썬의 datetime은 iterable 하지 않다. 그래서 넘파이 라이브러리에선 이를 보강해, array도 처리할 수 있는 datetime64 클래스를 만들었다. 넘파이를 기반으로 하는 판다스에서도 사용가능하다. import numpy as np someday = np.array('2022-05-11', dtype= np.datetime64) someday >>> array('2022-05-11', dtype='datetime64[D]') someday + 10 >>> numpy.datetime64('2022-05-21') someday - 35 >>> numpy.datetime64('2022-04-06') someday + np.arange(5) >>> array(['2022-05-11', '202..

    Pandas 데이터프레임에서 boolean indexing의 활용

    import pandas as pd df = pd.read_csv('crime.csv', index_col=0) df​ 데이터를 보니 검거율이 100을 넘는 값들이 있다. 100을 초과한 값들을 100으로 변경해주려 한다. 불리언 인덱싱을 활용해 여러 컬럼에 있는 값들을 한번에 바꿀 수 있다. df.loc[: , '강간검거율':'폭력검거율'] > 100 df[ df.loc[: , '강간검거율':'폭력검거율'] > 100 ] df[ df.loc[: , '강간검거율':'폭력검거율'] > 100 ] = 100

    Pandas 피벗 테이블(Pivot table)

    pivot table을 사용하면 컬럼에 중복된 값이 있을 때, 컬럼을 인덱스로 만들어 유니크하게 만들 수 있다. import pandas as pd import numpy as np df = pd.read_excel('../data/sales-funnel.xlsx') # 에러가 날 경우 pip install openpyxl df pd.pivot_table(df, index=['Name']) # index 파라미터에는, 유니크하게 만들고 싶은 컬럼의 이름을 적는다. # 중복되는게 있을때 디폴트로 수치데이터들의 평균이 출력된다. # Manager 와 Rep 를 유니크하게 만들고, 수치의 평균을 구하라 pd.pivot_table(df, index=['Manager', 'Rep']) # Name 컬럼을 유니크하..

    오픈API Goolglemaps Geocode로 위치정보 받아오기

    import pandas as pd df = pd.read_csv('../data/crime_in_Seoul.csv', encoding='euc-kr', thousands=',') df 이 데이터프레임에 있는 관서명을 토대로 어느 구에 속해있는지 찾아 새로운 컬럼으로 만들려한다. 위치정보를 받아오기 위해 오픈 api인 Googlemaps를 사용해 보겠다. https://cloud.google.com/maps-platform/?h1=ko Google Maps Platform - Location and Mapping Solutions Create real world and real time experiences for your customers with dynamic maps, routes & places ..

    Pandas의 DataFrame.plot() 으로 시각화하기

    판다스 데이터프레임의 plot 메소드는 x축에 인덱스를 셋팅하고, y축에는 모든 컬럼의 데이터를 셋팅해준다.(모든 컬럼을 차트로 그려준다) import pandas as pd import matplotlib.pyplot as plt # 한글처리코드 import platform from matplotlib import font_manager, rc plt.rcParams['axes.unicode_minus'] = False if platform.system() == 'Darwin': rc('font', family='AppleGothic') elif platform.system() == 'Windows': path = "c:/Windows/Fonts/malgun.ttf" font_name = font_ma..