데이터분석/전처리 31

데이터프레임, 넘파이 함수정리

* 넘파이는 np, 판다스는 pd import numpy as np import pandas as pd 결측치 함수 설명 리턴값 비고 np.isnan(data) data값이 nana값이면 True를 반환 True or False sosoeasy.tistory.com/188 df.fillna({"col":df["col"].mean()}) "col"컬럼의 결측치를 평균으로 대체 df - 데이터변환 (data transformation) 함수 설명 리턴값 비고 array.shape 데이터의 모양을 확인 튜플형태로 sosoeasy.tistory.com/187?category=891523 array.reshape(n,m) 데이터 차원을 n,m으로 변환 있음 sosoeasy.tistory.com/187?catego..

스케일링(scaling) 및 인버스스케일링 종류와 코드 (정규화, 역정규화)

스케일링은 컬럼별 단위차이를 줄여서 연산속도를 빠르게 하고 조건수를 줄여서 최적화 성능을 향상시킨다. standard scaler 평균을 빼고 표준편차로 나누는 변환. 각 변수가 정규분포를 따른다는 가정 후 수행하므로 정규분포가 아닐 시 최선이 아닐 수 있다. (1) 식 (2) 그래프 min-max scaling 가장 많이 사용되는 알고리즘, 값을 0~1로 바꿔줌. 각 변수가 정규분포가 아니거나 표준편차가 매우 작을 때 효과적이다. (1) 식 (2) 그래프 robust scaling 최소-최대 스케일과 유사하다. 최소최대 대신 IQR(InterQuartile Range)중 1분위수, 3분위수를 사용한다. 이상치의 영향을 최소화 하였기 떄문에 이상치가 있는 데이터에 효과적이다. (1) 식 (2) 그래프 n..

시계열데이터와 비시계열데이터의 데이터셋 분할하는 법

1. 비시계열데이터 (1) 설명 데이터셋을 보통 (훈련셋:검증셋:테스트셋=6:2:2)로 나눈다. 이때 데이터는 보통 랜덤으로 추출한다. (2) 코드 from sklearn.model_selection import train_test_split # test_set의 사이즈를 0.2%로 설정 X_train, X_test, Y_train, Y_test = train_test_split(dataframe[X_colname], dataframe[Y_colname], test_size=0.2, random_state=123) 2. 시계열데이터 (1) 설명 시계열데이터의 경우 랜덤성을 부여하면 안되고 시간축을 유지한다. 과거부터 데이터부터 train,validation,test 순으로 비율을 나눈다 * 주의할점 te..

pandas dataframe 시계열 관련 함수

1. 시계열데이터로 바꾸는 함수 dataFrame.asfreq('단위',meathod='결측치채우는방법') # 단위 #'D':day, 'W':week, 'H':Hour # meathod # 'ffill' or 'pad' : forward fill, 앞에것으로 뒤에것을 채우는것 # 'bfill' or 'backfill' : 뒤에것으로 앞에것을 채우는것 2. 시계열데이터에서 결측치 확인하기 raw_all #결측치가 있는 값은 True를 반환한다 raw_all.asfreq('H').isnull().sum(axis=1)>0 #결측치가 있는 행을 반환한다 raw_all.asfreq('H')[raw_all.asfreq('H').isnull().sum(axis=1) > 0] 3. 시계열 분해(추세, 계절성, 잔차) ..

missingno 라이브러리를 통한 결측치 확인

* 타이타닉 데이터를 이용 import missingno # data는 dataFrame type missingno.matrix(data, figsize = (15,8)) 위에서부터 첫번째행, 맨아래가 마지막 1309행으로서 각 att의 결손을 보여줌. (하얀색이 결측치) - age와 cabin이 중간중간 결측치가 많음. - train+test된 데이터이기 때문에 survived의 아래쪽은 모두 비어있음 맨오른쪽은 파스크행 이라고 하여 데이터의 완전성을 나타낸다고 함 (정확히 뭔지 잘모르겠음..)

판다스(pandas) 데이터프레임(dataframe) 관련함수

여기에 아래 링크에 다시 정리했습니다! sosoeasy.tistory.com/464 데이터 전처리 관련 함수 * 넘파이는 np, 판다스는 pd import numpy as np import pandas as pd 결측치 함수 설명 리턴값 비고 np.isnan(data) data값이 nana값이면 True를 반환 True or False sosoeasy.tistory.com/188 데이터변환 (data.. sosoeasy.tistory.com 0. 파일 불러오기 csv=pd.read_csv("NYPD_Complaint_Data_Current_YTD.csv") 1. 데이터 추가하기 df=pd.DataFrame(columns=["season","time","crime_code","street"]) # igno..

pandas dataFrame에서 nan값 찾기

* 2,3번 방법은 nan이아니면 오류가 나기 때문에 예외처리를 해주어야 한다. 따라서 1번방법을 사용하도록 한다. # 변수nan은 nan값. nan=csvTrain["Province_State"][0] 1. 자기자신과 비교하기 # nan이면 자기자신과 비교해도 False가 나온다 print(nan==nan) 더보기 False 2. numpy모듈의 .isnan()함수 import numpy as np print(np.isnan(nan)) 더보기 True 3. math모듈의 .isnan()함수 import math print(math.isnan(nan)) 더보기 True

[파이썬] numpy array 다루기

import numpy as np ''' --------------------------------------------------------------------- 1. 모양확인 (numpy.ndarray.shape) - 1차원부터 차례대로 개수를 확인 - 공통된 부분까지만 출력된다. --------------------------------------------------------------------- ''' x=np.array([[[1,4],[5,6]],[[1,2],[7,8]],[[4,1],[66,4]]]) print(x.shape) # (3,2,2) x=np.array([[[1,4],[5,6]],[[1,2],[7,8]],[[4,1],[66,4]],[2,7]]) print(x.shape) # (..