2016-09-23 4 views
1

R의 data.table 패키지에는 그룹 인덱스 값을 생성하는 데 매우 편리한 .GRP 메소드가 있습니다.팬더를 사용하여 그룹 ID를 만드는 방법

library(data.table) 
dt <- data.table(
    Grp=c("a", "z", "a", "f", "f"), 
    Val=c(3, 2, 1, 2, 2) 
) 
dt[, GrpIdx := .GRP, by=Grp] 

    Grp Val GrpIdx 
1: a 3  1 
2: z 2  2 
3: a 1  1 
4: f 2  3 
5: f 2  3 

pandas를 사용하여 같은 일을 수행하는 가장 좋은 방법은 무엇입니까?

import pandas as pd 
df = pd.DataFrame({'Grp':["a", "z", "a", "f", "f"], 'Val':[3, 2, 1, 2, 2]}) 
+3

가하셨습니까'안양를 [ 'GrpIdx'] = DF [ 'Grp']. rank (method = 'dense')'기회? –

+0

@NickilMaveli IMHO 답변으로 작성해야합니다. 유용합니다. –

답변

2

당신은 string 값을 허용하는 dense로 설정 ARG method와 독특한 그룹을 식별 할 수 rank을 사용할 수

df['GrpIdx'] = df['Grp'].rank(method='dense').astype(int) 

Image

관련 문제