데이터 분포 변환
대부분의 모델은 변수가 특정 분포를 따른다는 가정을 기반으로 한다. 예를 들어 선형 모델의 경우, 종속변수가 정규분포와 유사할 경우 성능이 높아지는 것으로 알려져 있다. 자주 쓰이는 방법은 Log, Exp, Sqrt 등 함수를 이용해 데이터 분포를 변환하는 것이다.
1 2 3 4 5 6 7 8 9
| import math from sklearn import preprocessing
df['X_log'] = preprocessing.scale(np.log(df['X']+1)) df['X_sqrt'] = preprocessing.scale(np.sqrt(df['X']+1))
df_log = df.apply(lambda x: np.log(x+1))
|
중복된 행 제거
위, 아래 행이 모두 같은 성분을 가지는 행이 여러개 있을때, 하나만 사용하기(데이터프레임)
중복된 행이 제거되고 unique한 값만 가져올 수 있다.
1 2 3
| df.drop_duplicates()
df.drop_duplicated() 는 boolean값으로 반환!
|
1 2
| df['name'] = df['name'].apply(lambda e: e.split()[0]) df['email'].str.get(i=0) 데이터프레임이나 시리즈형식에서 문자를 나누고 [0]번째 문자만 가져오기
|
데이터 프레임 모든 열에 특정 스칼라값 or 특정 컬럼.value 연산
1
| df[컬럼명] *= (스칼라값) / 해당 데이터프레임 컬럼이 와도 됨
|
1
| df[컬럼명] = df[컬럼명].div(스칼라값 or 컬럼, axis=0)
|
a=10, b=20, c=3
Operator Description Example
+ 더하기 a + b 30
- 빼기 a - b -10
* 곱하기 a * b 200
/ 나누기 b / a 2.0
% 나머지 b % a 0
** 제곱 a ** c 1000
// 몫 a // c 3