파이썬/라이브러리 26

딥러닝 : prophet으로 범죄율 예측하기

시카고 범죄 현황 먼저 Date 컬럼 가공 iso 표준 시간으로 바꿔주기 chicago_df['Date'] = pd.to_datetime(chicago_df['Date'] , format = '%m/%d/%Y %I:%M:%S %p') 인덱스 설정 https://seonggongstory.tistory.com/164 pandas: resample이용하여 Time Series 년도별,월별,일별 group화 하기 시카고의 범죄상황 데이터 프레임 여기서 년도별 시간별로 월별등 시간을 쪼개서 데이터를 가공하고 싶을때 그룹바이함수를 이용해서는, 날짜 데이터로 바로 년단위 ,월단위, 일단위, 시단위, seonggongstory.tistory.com 데이터 준비 chicago_prophet = chicago_df.re..

pandas: resample이용하여 Time Series 년도별,월별,일별 group화 하기

시카고의 범죄상황 데이터 프레임 여기서 년도별 시간별로 월별등 시간을 쪼개서 데이터를 가공하고 싶을때 그룹바이함수를 이용해서는, 날짜 데이터로 바로 년단위 ,월단위, 일단위, 시단위, 분단위, 초단위 등으로 묶어라 이런거 못한다 따라서, 먼저 Date 컬럼을 인덱스로 만들어준다. → 그러면 resample 함수를 사용할수 있게 된다. 이함수 년단위,월단위,시단위 등등 으로 데이터를 묶어서 처리가 가능하다는것 변수.resample('alias') 이렇게 년,월,일,시,분으로 다 정리가 가능하다

pandas: collaborative filtering을 통한 영화 추천시스템 구현

import pandas as pd import numpy as np 데이터 가공 공통된 컬럼인 item_id를 토대로 합치되, 필용없는 타임스탬프 컬럼은 제거 movies_rating_df = movies_rating_df.drop('timestamp',axis=1) movies_rating_df = pd.merge(movie_titles_df , movies_rating_df, on = 'item_id' , how='left' ) 여기서 how를 하지 않으면 평점을 메기지 않은 정보는 머지 되지 않기 때문에 how를 곡 해준다. 타이틀별 평균 평점을 구하기 movies_rating_df.groupby('title')['rating'].describe() ratings_df_mean = movies_r..

파이썬 라이브러리22 pandas 데이터프레임 정렬하기/sort/ascending

데이터 정렬하기 1)오름차순 변수.sort_values('컬럼') 변수.sort_values('컬럼' , ascending = True) 변수.sort_values('컬럼' , ascending = True) ascendign(증가) = True란뜻으로 오름차순을 의미 기본적으로 어센딩이 포함된 형태가 맞지만 기본적으로 디폴트값으로 설정되어 있어서 특별하게 표시를 안해줘도 오름차순으로 정렬 된다. 이 데이터에서 경력으로 정렬을 한다면 2)내림차순 변수.sort_values('컬럼' , ascending = False) 반대로 어센딩이 거짓이라면 내림차순 3)혼합 이름은 오름차순으로 정리하고 경력은 내림차순이라면 먼저 이름과 경력을 정렬을 해보고 df.sort_values(['Employee Name','..

파이썬 라이브러리21 pandas 데이터프레임 : applying 함수

데이터프레임 함수적용 데이터프레임의 데이터에 함수를 이용해서 새로운 데이터를 만들고 컬럼을만들어 저장하기 데이터를 한번에 가공하는 함수는 변수['컬럼'].apply( 함수 ) apply 함수안에 내가 적용하고 싶은 함수의 이름만 써준다 이때 함수옆에()는 빼준다. 이 데이터 프레임안에 직원의 이름이 몇글자인지 나타내는 컬럼을 작성 할때. 기존 글자수를 세는 파이썬 기본함수 len()이 있다 기존엔 문자데이터 하나를 변수에 저장하고 변수에 함수를 적용하여 글자수를 확인하는 하나하나씩 데이터를 저장했는데 df['Employee Name'].apply( len ) 0 6 1 5 2 5 3 4 Name: Employee Name, dtype: int64 df데이터프레임 안에 'Employee Name' 컬럼안 ..

파이썬 라이브러리20 pandas 데이터프레임: boolean을 통한 데이터 추출

df = pd.DataFrame({'Employee ID':[111, 222, 333, 444], 'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'], 'Salary [$/h]':[35, 29, 38, 20], 'Years of Experience':[3, 4 ,9, 1]}) 이러한 데이터에서 경력이 3년 이상인 데이터가 필요 하다면 경력 부분 컬럼인 'Years of Experience'을 엑세스 하고 3년이상인 데이터만 필터링 하면된다 df['Years of Experience'] >=3 Out 0 True 1 True 2 True 3 False Name: Years of Experience, dtype: bool 모든 데이터를 가져와야 하기 때문에 loc ..

파이썬 라이브러리19 pandas 데이터프레임 : 카테고리컬 데이터 /.agg /.groupby /.unique /value_counts()

중복된 데이터 이러한 데이터가 있다면 이 데이터에서 Year 만 추출했을때 결과는? df['Year'] 값은 1990 1990 1990 1991 1991 1991 1992 1992 1992 이경우 변수['컬럼'].unique() Out array([1990, 1991, 1992], dtype=int64) 이렇게 중복이 제거된 값만 나오게 된다 묶어서 데이터 분석하기 1)그룹별 묶어서 한개 연산하기 변수.groupby('컬럼') 그룹별 묶는 명령어 자체가 함수이기 때문에 필요한 데이터를 추가로 액세스 할 수 있다. 저기서 년도별 지급한 연봉 총합을 구하라 한다면 먼저 연도별 그룹을 생각 하고 연봉을 액세스해서 총합을 구하는 메카니즘을 생각하면 편하다 df.groupby('Year') df.groupby('..

파이썬 라이브러리18 pandas 데이터프레임 : NaN데이터 처리 isna()/notna / dropna() / fillna()

NaN 데이터 처리 비어있는 데이터가 어디에 있는가 확인 변수.isna() 데이터가 비어있는지 확인 변수.notna() 데이터가 채워저있는지 확인 df = pd.DataFrame(data = items2 , index = ['store1','store 2','store 3']) NaN 데이터 삭제하기 변수.dropna() NaN이 있는 데이터는 무조건 삭제 그럼 행이 삭제되어야 함. 특정 값으로 채우기 변수.fillna( 채우려는 값 ) 1.NaN데이터 처리 변수.isna() 데이터가 비어있는지 확인 변수.notna() 데이터가 채워저있는지 확인 2.NaN 데이터 삭제하기 변수.dropna() NaN이 있는 데이터는 무조건 삭제 그럼 행이 삭제되어야 함. 3.특정값으로 채우기 변수.fillna( 채우려는..

파이썬 라이브러리17 pandas 데이터프레임: drop()/rename()/인덱스 바꾸기

데이터 삭제하기 행과 열 삭제하기 변수.drop('인덱스' or '컬럼' , axis = 0 or 1) 1)행 삭제 저데이터 에서 store2를 삭제한다고 하면 df = df.drop('store 2' , axis=0) 2)열삭제 df.drop(['glasses'], axis = 1) 당연히 복수 삭제도 가능하다 인덱스나 칼럼명 바꾸기 변수.rename( index or columns = { '기존이름' : '바꿀이름'} ) 인덱스명 바꾸기 먼저 바꿀 인덱스명의 칼럼을 만든후 set을 통해 인덱스에 inplace (위치 시키기) 두가지의 방법이 있음 df['name'] = ['A','B','C'] 으로 새로운 컬럼을 만들고 df = df.set_index('name') df.set_index('name'..