파이썬/데이터분석 6

데이터프레임안 nan대신 0으로 채워저 있을때 : pandas replace

머신러닝 작업하기위해 데이터를 수집하는 단계에서 데이터프레임안 NaN데이가 있는지 판단하기 위해 df.isna().sum()을 사용할때 이런식으로 nan데이터는 없다고 나오지만 디스크라이브를 통해 분석을 해보면 나이나 피부 등등 0이 나올수 없는 값이 0이 나오는경우가 있다. 이런경우 데이터프레임에 nan대신 0을 집어 넣었다는 이야기가 된다. 이런경우 판다스 데이터프레임 함수 replace를 활용하면 좋다 df.loc[ :,컬럼].replace(바꾸기전 내용, 바꿀 내용) 저 데이터에선 df.loc[ :,'Plas':'age'].replace(0, np.nan) 이렇게 하면 0을 nan데이터로 바꿔버릴수 있음 df.loc[ :,컬럼].replace(바꾸기전 내용, 바꿀 내용)

[numpy, pandas] time Seires: datetime64 / pd.to_datetime / pd.date_range()

[numpy] datetime64 기존의 파이썬 datetime 을 보강하기 위해, date 의 array 도 처리할 수 있게 numpy 에서 64-bit 로 처리하도록 라이브러리를 강화한 형태 np.array('날짜', dtype = np.datetime64) 이렇게 datetiem64를 활용할경우 연산이 훨씬 편해진다 당연히 넘파이 함수이기 때문에 arange와 연산도 가능하다 판다스 to_datetime 문자열로 되어있는 날짜의 리스트를 한번에 파이썬의 날짜형식으로 변환하는 함수 pd.to_datetime(date_list) 그냥 눈으로 봤을때는 날짜 형식이지만 실제로는 문자열로 되어있는 데이터를 쉽게 날짜로 바꿔버림 전체 데이터를 날짜로 바꿨기 때문에 모든 데이터를 쉽게 가공할수있음 [pandas..

pandas pivot_table

피벗테이블 컬럼값을 인덱스로 만들고, 인덱스를 중복제거하여 유니크하게 만드는 방법 pd.pivot_table(데이터프레임, index = ['컬럼명'] 이러한 데이터 프레임이 있다면 여기서 Name 컬럼에 중복되는 데이터가 많다 이러한 경우 피벗테이블을 이용해 쉽게 유니크 시킬수 있음 이런식으로 중복되는 컬럼은 인덱스로 옮기며 하나로 합쳐지고 그외 숫자 데이터도 합쳐지는걸 볼수있다. 이때, 기본 디폴트는 숫자데이터의 평균 파라미터 aggfunc= np.sum 파라미터 aggfunc은 데이터 처리를 표현해줌 파라미터 values = ['컬럼명'] 원하는 데이터만 피벗테이블화 시킬수 있음 피벗테이블 함수) pd.pivot_table(데이터프레임, index = ['컬럼명']) 파라미터 aggfunc= 식 숫..

api 활용하기(구글맵스)

데이터분석을 하거나 혹은 어플리케이션을 개발할때등 정확한 위치의 좌표가 필요하거나 특정장소의 행정구역 데이터를 정리해야하는 순간이 온다면 지도 오픈 api중 가장 큰 구글맵스를 활용하면 좋다. 구글 Maps API는 유료 api인데 사용량 만큼 돈이 나가는 api이기 때문에 구글아이디를 통해 결제용으로 설정만 한다면 구글 맵스api를 발급 받을수 있다. 유료 api이지만 한 달에 28,500번 정도는 무료로 사용할수있기때문에 개인 공부용으론 무리없이 사용가능 구글맵스 api를 사용하기 위해선 라이브러리 설치를 진행해야하는데 import googlemaps gmaps_key = "발급받은 API 키" gmaps = googlemaps.Client(key=gmaps_key) gmaps.geocode('검색어..

데이터분석중 데이터값에 ~가 들어가지 않는 경우 ( false값 뒤집기) pandas

데이터 분석중 데이터프레임 데이터중 특정컬럼에 특정데이터가 들어가지 않는 경우를 출력하라. 데이터프레임 데이터중 특정컬럼에 특정 데이터가 들어가는 경우 → df['컬럼'].str.contains('특정단어' , case=False) 이경우 결과 값은 포함하는 데이터가 True 포함하지 않으면 False panas 문법으로 이때 문법 앞에 ~를 붙일경우 결과값을 반대로 뒤집을 수 있음 ~df['컬럼'].str.contains('특정단어' , case=False)