2017-11-08 5 views
1

특정 열에서 중복 행 값을 제거하고 싶습니다.이 경우 열 이름은 "number"입니다.pandas 특정 열의 중복 행 값을 내림

전 :

 number qty status 
    0 10  2 go 
    1 10  5 nogo 
    2 4  6 yes 
    3 3  1 no 
    4 2  7 go 
    5 5  2 nah 
    6 5  6 go 
    7 5  3 nogo 
    8 1  10 yes 
    9 1  10 go 
    10 5  2 nah 

후 : 그것은 가능하다

 number qty status 
    0 10  2 go 
       5 nogo 
    1 4  6 yes 
    2 3  1 no 
    3 2  7 go 
    4 5  2 nah 
       6 go 
       3 nogo 
    5 1  10 yes 
       10 go 
    6 5  2 nah 
+0

은 「NaN을 "뜻"드롭 "? –

답변

0

cumsumshift 에드 컬럼과 비교 열을 기준으로 만들어진 새 시리즈 a에 의해 duplicatedmask에 의해 빈 문자열 또는 NaN이 값을 대체 :

a = df['number'].ne(df['number'].shift()).cumsum() 
#for replace '' 
df['number'] = df['number'].mask(a.duplicated(), '') 
#for replace NaNs 
#df['number'] = df['number'].mask(a.duplicated()) 
print (df) 
    number qty status 
0  10 2  go 
1   5 nogo 
2  4 6 yes 
3  3 1  no 
4  2 7  go 
5  5 2 nah 
6   6  go 
7   3 nogo 
8  1 10 yes 
9   10  go 
10  5 2 nah 

세부 사항 : 당신이 말할 때

a = df['number'].ne(df['number'].shift()).cumsum() 
print (a) 
0  1 
1  1 
2  2 
3  3 
4  4 
5  5 
6  5 
7  5 
8  6 
9  6 
10 7 
Name: number, dtype: int32 
관련 문제