2017-11-26 11 views
0

나는 dataframe표준화 데이터는

 O D counts 
0 G1 G1 8576 
1 G1 G2 4213 
2 G1 G3 8762 
3 G2 G1 8476 
4 G2 G2 2134 
... 

을 가지고 있지만 각 그룹은 예를 들어, 그래서 O와 D의 서로 다른 집단이 : O에

G1은이 말을 , 1234 개의 다른 회원, D의 G1은 4321입니다.

pandas을 사용하여 위 표를 어떻게 정규화합니까?

답변

1

먼저 바꿀 필요 보인다 다음 normalize : 다시

df = df.set_index(['O','D'])['counts'].unstack(fill_value=0) 
print (df) 
D  G1 G2 G3 
O     
G1 8576 4213 8762 
G2 8476 2134  0 

df1 = (df - df.mean())/(df.max() - df.min()) 
print (df1) 
D G1 G2 G3 
O     
G1 0.5 0.5 0.5 
G2 -0.5 -0.5 -0.5 

그리고 마지막으로 모양 변경 :

print (df1.stack().reset_index(name='count')) 

    O D count 
0 G1 G1 0.5 
1 G1 G2 0.5 
2 G1 G3 0.5 
3 G2 G1 -0.5 
4 G2 G2 -0.5 
5 G2 G3 -0.5