2017-11-03 1 views
-2

I X1 수행 시험의 날짜입니다 다음 데이터 집합을 가지고, X2는 45 레벨과 X3를 가진 테스트의 결과는 내가하려고 테스트 이름범주 데이터는 dummified하고 집계 할

X1   X2 X3 
20.04.2017 AA 1256(NB) 
20.04.2017 AA 1257(NB) 
20.04.2017 AA 1258(LM) 
20.04.2017 LL 1257(NB) 
23.07.2017 LL 1256(NB) 
23.07.2017 LL 1258(LM) 

입니다 I를 위해 AA 'pd.get_dummies'그러나 X3 컬럼에 기초 안될의 응집을 사용 & LL을 더미 열을 생성 할 수 있었다

Date   X3  AA LL 
20.04.2017 1256(NB) 1 1 
20.04.2017 1257(NB) 1 1 
20.04.2017 1258(LM) 1 0 
23.07.2017 1258(LM) 0 1 

으로 상기 데이터를 변환. 이 작업을 수행하는

답변

1

한 가지 방법은 get_dummies + sum을 사용하는 것입니다 :

df.set_index(['X1', 'X3']).X2\ 
     .str.get_dummies().sum(level=[0, 1]).reset_index() 

      X1  X3 AA LL 
0 20.04.2017 1256(NB) 1 0 
1 20.04.2017 1257(NB) 1 1 
2 20.04.2017 1258(LM) 1 0 
3 23.07.2017 1256(NB) 0 1 
4 23.07.2017 1258(LM) 0 1 
+0

감사합니다! @COLDSPEED,하지만 레벨이 45 레벨을 좋아하기 위해 숫자가 커지면 레벨 ([0,1 ......., 44])을 써야합니까 ??? – Devesh

+0

@Devesh 범위를 넘길 수 있습니다 :'level = np.arange (45)' –

+0

@COLDSPEED 설명해 주셔서 감사 드리며 ... 레벨 수가 알려지지 않은 경우 어떻게해야합니까? – Devesh