2017-09-27 1 views
2

숫자 팬더 데이터 프레임을 정규화하려면 다음 코드를 사용합니다.팬더 데이터 프레임을 표준화하고 몇 개의 열을 건너 뜁니다.

df_norm = (input_df - input_df.mean())/(input_df.max() - input_df.min()) 

이제 새 데이터 프레임이 생겼습니다. 처음 두 열은 문자열입니다. 첫 번째 두 열을 무시하고 나머지 데이터 프레임에 대해 정규화를 수행하려고합니다. 작은 수정으로 위의 코드를 재사용 할 수있는 방법이 있습니까? 감사!

+0

샘플 데이터 부탁드립니다. – Dark

답변

3

당신은 이후 두 번째 열 조각을 사용할 수 있습니다 -

s0 = input_df.iloc[:,2:] 
input_df.iloc[:,2:] = (s0 - s0.mean())/(s0.max() - s0.min()) 

샘플 실행 - 또는

In [274]: input_df 
Out[274]: 
     0  1   2   3 
0 foo1 doo1 0.880515 0.307642 
1 foo2 doo2 0.774307 0.229650 
2 foo3 doo3 0.189846 0.283218 

In [275]: s0 = input_df.iloc[:,2:] 
    ...: input_df.iloc[:,2:] = (s0 - s0.mean())/(s0.max() - s0.min()) 
    ...: 

In [276]: input_df 
Out[276]: 
     0  1   2   3 
0 foo1 doo1 0.384592 0.437719 
1 foo2 doo2 0.230817 -0.562281 
2 foo3 doo3 -0.615408 0.124563 

는, 새로운 출력을 생성하기 위해, 우리는 연결할 수 -

ss,s0 = np.split(input_df,[2],axis=1) 
df_out = pd.concat([ss,(s0 - s0.mean())/(s0.max() - s0.min())],axis=1) 
관련 문제