2016-10-22 7 views
6

약 80 개의 열이있는 대형 판다 데이터 프레임이 있습니다. 데이터 프레임의 80 개의 각 열은 웹 사이트의 일일 트래픽 통계를보고합니다 (열은 웹 사이트 임).Python pandas : 데이터를 정규화하는 가장 좋은 방법은 무엇입니까?

원시 트래픽 통계로 작업하고 싶지 않기 때문에 모든 칼럼을 정규화하는 것을 선호합니다 (첫 번째 날짜는 제외). 0에서 1까지 또는 0에서 100까지 (더 나은) 0보다 100까지입니다.

Date  A  B  ... 
10/10/2010 100.0 402.0 ... 
11/10/2010 250.0 800.0 ... 
12/10/2010 800.0 2000.0 ... 
13/10/2010 400.0 1800.0 ... 

그렇다면 어느 표준화를 적용해야 할 지 궁금합니다. Min-Max scaling 대 z-Score 표준화 (표준화)? 일부 열은 강한 특이 치를 가지고 있습니다. 예를 들어 보면 좋을 것입니다. 전체 데이터를 제공하지 못해 죄송합니다.

답변

14

먼저 날짜 열을 색인으로 변환하십시오. 그런 다음

dates = df.pop('Date') 
df.index = dates 

중 하나를 사용 Z 점수 정상화 :

df1 = (df - df.mean())/df.std() 

또는 최소 - 최대 스케일링 : 최소 - 최대 스케일링이기 때문에

df2 = (df-df.min())/(df.max()-df.min()) 

내가 아마, Z 점수 정상화를 권합니다 이상 치에 매우 취약하다.

+0

아웃 라이어가 내 인식에 비해 너무 강하지 않은 경우 min-max를 추천 하시겠습니까? – Rnaldinho

+0

또한 나는 이것을 시도했다. 불행히도 값은 0과 1 또는 0과 1 사이가 아닌 -3에서 1까지 다양합니다. 십진수도 있어야합니까? – Rnaldinho

+0

강한 특이 치가 있고 분석하기 전에 데이터 세트에서 제거하고 싶지 않은 경우 z- 점수 정규화를하는 것이 좋습니다. – User191919

관련 문제