ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • summary
    데이터 분석 2020. 7. 3. 10:47
    1. text, csv 파일 불러오기
    	- pd.read_csv("파일이름") → df → df.shape으로 내가 원하는 데이터 형태인지 확인 
    	- 구분자 : sep옵션
    	- index 지정 : index-col=열이름
    	- 열이름 지정 : names
    	- 인코딩 설정 오류 나올 때 : 파일 열기시 옵션으로 '인코딩옵션' = 'cp949'로 설정
    	- 특정 줄을 제외하고 싶을 때 : skiprows=[제외시키고 싶은 행] 
    	- n개 행 불렁기 : nrows=10:10개 행 불러오기
    	- 결측값으로 인식하라고 알려주는 속성 :na_values=["없는","존재하지않음"]
    
    2. dataFrame을 csv파일로 저장하기
    	- df.to_csv
    	- index속성값을 출력할지 안할지 결정 ; index=False(인덱스 저장X)
    	
    3.DataFrame의 속성
    	- 행 인덱스 지정할 때: index
    	- 열 인덱스 지정할 때: columns\
    	- 행/열 바꿀 때(전치행렬) : df.T
    	- 행/열 이름을 list로 추출하고 싶을 때 : df.axes  *df.dtypes;컬럼별 데이터타입 확인 가능
    	- DataFrame을 읽어서 array로 변환하고 싶을 때 : df.values  *numpy의 기본 자료구조;array형태(따라서, np.xxxx로 사용하고 싶을 때 array로 바꿔줘야함)
    	
    4.DataFrame에서 행/열 추출하기
    	- 행 인덱스 추출: df.index
    	- 열 인덱스 추출: df.columns
    	- 특정 열 인덱스 추출: df['컬럼명'] , df[['컬럼명1','컬럼명2']]
    
    5.인덱스 재설정, 결측값
    	- index 재설정 : reindex
    	- 결측값 채우기 : fill_value
    
    6.시계열 데이터
    	- pd.date_range:시계열 데이터를 다루기 위한 행 인덱스를 만들 수 있음  ex)pd.date_range('07/03/2020', periods=7, freq='D')
    
    7. 속성에 대한 동일한 형태를 가진 여러 개의 df를 합치기
    	- pd.concat() *R에서는 → rbind()
    	- 위+아래 합칠 때 : axis=0 (default)
    	- 좌+우 합칠 때 : axis=1 
    		ex) pd.concat([df1,df2],axis=0)
    	- join = 'outer','inner'
    	- 기존 index 무시 : ignore_index=True
    
    8. merge
    	- how : 병합 방법 
    	- on: 병합 기준 열에 대한 key
    	 	ex) pd.merge(df1,df2,how=left, on=기준열);왼쪽에 있는 df1에 맞춰서 outer 조인해라
    
    9. 결측값 확인, 갯수
    	- 결측값 확인할 때 사용하는 함수: isnull(), notnull
    		ex)df.isnull():null이면 true, 아니면 → boolean참조로 응용
    	- 컬럼 단위 결측값 개수 : df.isnull().sum()
    	- 행 단위 결측값 개수 :df.isnull().sum(1)
    	- df.mean(), df.std() 연산시 NaN은 제외됨
    	- 결측값 대체: knn, 회귀모델 예측
    		ex) df.fillna(0);결측값을 0으로 대체하라
    	- 결측값 행/열 제거
    		df.dropna(axis=1) / df.dropna(axis=0)
    	- 결측값을 다른 값으로 대체: replace
    		ex) df.replace(np.nan,10): 결측값을 10으로 대체
    	- 중복값 확인: df.duplicated()
    	- 중복값 처리: df.drop_duplicate()
    
    10. 유일한 값 찾을 때/유일한 값별로 개수 세기
    	- 열단위로 유일한 값 찾을 때: unique()
    	- 유일한 값별로 개수 셀 때: value_counts() → 여러가지 옵션을 줄 수 있음. 매우 중요*****
    
    11. 정규화 작업에 쓰이는 함수
    	-정규화: 변수들 간의 척도가 다를 경우 → 상호비교X (따라서, 같게 만들어 줘야함)
    	-numpy: 표준화z(xdata-mean())/std()  
    			*import scipy.stats as ss → ss.zscore(data)
    			*from sklearn.preprocessing import StandardScaler → StandardScaler().fit_transform(data)
    		평균 mean은 이상치의 영향을 많이 받기 때문에 이상치는 제거해줘야함.
    		이상치 제거가 힘들경우 → 표준화 공식에서 평균 대신, 이상치에 덜 민감한 '중앙값' 사용함/IQR사용(IQR = Q3-Q1)
    
    		#이상치 제거
    		from sklearn.preprocessing import StandardScaler
    		xs=StandardScaler().fit_transform(x) #x의 표준화계수 구하기
    		xss=xs[xs<5]
    		plt.hist(xss,bins=np.arange(-3,3,0.2))
    		
    		#각 데이터에서 평균대신 중앙값으로 표준화계수를 구한 값
    		from sklearn.preprocessing import RobustScaler
    		xr=RobustScaler().fit_transform(x)
    		xrs=xr[xr<5]
    		plt.hist(xrs, bins=np.arange(-3,3,0.2))
    
    		#q1, q3구하기
    		q1=np.percentile(x,25) #데이터를 오름차순 정렬했을 때 25%까지 추출하는 함수
    
    		#연속형 변수를 이항 변수화(0아니면 1로 나누겠다)
    		from sklearn.preprocessing import Binarizer
    		x=np.array([[10,-10,1],[5,0,3],[0,7,5]])
    		#x를 0보다 크면 1, 작거나 같으면 0으로 변환시키겠다.
    		bi=Binarizer().fit(x)
    		bi.transform(x)
    		#x를 4보다 크면 1, 작거나 같으면 0으로 변환시키겠다.
    		bi=Binarizer(threshold=4).fit(x)
    		bi.transform(x)
    	-원핫(1)인코더 : 범주형 변수 → 이항변수화
    		

    '데이터 분석' 카테고리의 다른 글

    랜덤포레스트  (0) 2020.07.08
    아파트 데이터 분석  (0) 2020.07.01
    day3  (0) 2020.06.24
    20200618  (0) 2020.06.18
Designed by Tistory.