분류 전체보기 (102) 썸네일형 리스트형 10_03. 연속적인 숫자 생성 Recursive CTE 사용 Recursive CTE 개념 Recursive CTE (Common Table Expression)는 CTE 중 자기 자신을 반복적으로 호출하는 CTE이다. with recursive temp as ( select 0 as trans_cnt from transactions union select trans_cnt+1 from temp where trans_cnt < ( select count(*) from transactions group by user_id, transaction_date order by 1 desc limit 1) ) 10_02. [mysql] moving average & rolling sum mysql을 이용한 moving average 와 rolling sum을 구해보자 위와 같은 형태의 데이터를 이용하여, amount에 대한 moving average window=7 을 구해보자! select visited_on , amount, average_amount from ( select a.visited_on ,row_number()over(order by a.visited_on) as rn ,sum(b.amount) as amount ,round(avg(b.amount),2) as average_amount from ( select visited_on ,sum(amount) as amount from customer group by visited_on) a left join (select v.. 07_01_61. 데이터프레임 특정 컬럼명 변경 (dataframe rename) 데이터 프레임 특정 컬럼명 변경 rename 이용! df_aerial_war.rename(columns = {'Mission Date':'Date'}, inplace=True) 07_01_60. datetime 에서 year, month, day 데이터 컬럼 생성 import pandas as pd df_aerial['Mission Date'] = pd.to_datetime(df_aerial['Mission Date']) df_aerial['year'] = df_aerial['Mission Date'].dt.year df_aerial['month'] = df_aerial['Mission Date'].dt.month df_aerial['day'] = df_aerial['Mission Date'].dt.day apply 를 이용하는 다른 방법! df_aerial['month'] = df_aerial['Mission Date'].apply(lambda x:x.month) 07_01_59. string(object) to datetime 문자형을 날짜형으로 변경 python import pandas as pd # 방법 1 df_wthr['date'] = df_wthr['date'].astype('datetime64') # 방법 2 df_wthr['date'] = pd.to_datetime(df_wthr['date']) 07_01_58. seaborn barplot 막대그래프 countplot의 경우는 데이터에 대한 빈도를 계산해서 plot을 그려주지만 각 카테고리별 빈도가 데이터셋에 계산되어 있는 경우, barplot 이용 import seaborn as sns import pandas as pd # Bombing data df_aerial = pd.read_csv('archive.zip') ### 중간에 na 포함된 행 전처리 했으나 그 부분 skip ### # Aircraft Series 별 빈도 계산 data = df_aerial['Aircraft Series'].value_counts() plt.figure(figsize=(12,5)) # top10개에 대한 막대그래프 sns.barplot(data[:10].index, data[:10].values) 07_01_57. graph 카테고리별 분포 seaborn countplot 데이터 불러오기 import pandas as pd import seaborn as sns # visualization library # Bombing data df_aerial = pd.read_csv('archive.zip') df_aerial.dropna(subset=['Country'], inplace=True) # inplace : 제거한 상태를 데이터프레임에 바로 적용 카테고리별 빈도 데이터에 대한 graph , 그래프 title 추가 plt.figure(figsize=(10,5)) # 카테고리 별 데이터가 얼마나 있는지 살펴보기 sns.countplot(df_aerial['Country']) # 혹은 sns.countplot(x="Country", data=df_aerial) plt.titl.. 07_01_56. dropna 함수 (결측치 제거) 데이터에 NaN 값이 존재하는 경우 결측치 제거하는 방법을 살펴보고자 한다. import pandas as pd df = pd.read_excel('tmp.xlsx') df 1. 결측치가 존재하는 행 제거하기 # Listwise 방식으로 제거 # 행 기준으로 삭제 : 결측치가 존재하는 행이 삭제됨 df.dropna(axis=0) # df.dropna() # df.dropna(axis=0, how='any') # 결측이 있는 행 전부 2. 결측치가 존재하는 열 제거하기 # 열 기준으로 삭제 : 결측치가 존재하는 컬럼이 삭제됨 df.dropna(axis=1) 3. 특정 컬럼에 존재하는 na에 대해서만 고려 할 때, subset 이용 # 특정 컬럼에 존재하는 na에 대해서만 고려 할 때, subset 이용 d.. 07_01_55. 날짜, 시간 함수 strptime , strftime 날짜, 시간 값을 문자열로 출력 strftime 함수 이용 import pandas as pd import datetime ## 날짜, 시간을 문자열로 출력 => strftime now = datetime.datetime.now() print(now) nowdate = now.strftime('%Y-%m-%d') print(nowdate) nowtime = now.strftime('%H:%M:%S') print(nowtime) print(type(nowdate)) 문자열로부터 날짜와 시간 정보를 읽어서 datetime.datetime 객체 생성 strptime 함수 이용 date = datetime.datetime.strptime('2020-06-21 12:25:39', '%Y-%m-%d %H:%M:%S.. 07_01_54. 'UTM-K' to 'WGS84' 변환 import pandas as pd import geopandas as gpd import pyproj from fiona.crs import from_epsg import os # dw 연결 import ibm_db_dbi # Setting conn = ibm_db_dbi.connect("DRIVER={IBM DB2 ODBC DRIVER}; Database='db이름'; Hostname=hostip입력; Port=portnumber입력; PROTOCOL=TCPIP; UID=userid입력; PWD=비밀번호입력", "", "") query_biz = ''' 쿼리 ; ''' # Sql df_dw = pd.read_sql( query_biz, conn) # 컬럼명 소문자 변환 df_dw.columns = d.. 이전 1 2 3 4 5 6 ··· 11 다음