Dev/Python

Pandas | 특정 칼럼의 특정값의 row 제거 & 중복되는 값 row 제거

sooya14 2020. 4. 21. 18:03

 

| 특정값의 row 제거하기 

 

df

  a b c d e 
0 1 3 5 7 8
1 3 0 4 6 6
2 3 0 3 3 9
3 9 9 7 8 4 

 

위의 데이터프레임에서 'b'의 값이 0인 row 를 제거하여 데이터프레임을 구성하고 싶다고 가정할게요

즉, 

인덱스가 1, 2 인 row를 제거하고 싶을 때, 

 

df = df[df.b != 0]
df.tail()

 

결과는 이렇게, 

짜란~

df

  a b c d e 
0 1 3 5 7 8
1 9 9 7 8 4 

 

| 중복값 처리 

 

다시 이 데이터 프레임을 사용하고

df

  a b c d e 
0 1 3 5 7 8
1 3 0 3 6 6
2 3 0 5 3 9
3 9 9 7 8 4 

 

위의 데이터프레임에서 'a' 값이 중복되는 경우 한가지의 row 만 가져오고 싶을 때, 

즉 

인덱스 1, 2 의 row 는 a 의 값이 동일하다 이럴 때 둘 중 하나의 row 만 구성하고 싶을 때

 

 

res = df.drop_duplicates("a", keep="first")

 

 

keep="first"

중복되는 값의 첫번째 row를 가져오고 나머지는 버리기 

keep="last"

중복되는 값 중에 가장 마지막 row를 가져오기

 

아래가 그 결과

df

  a b c d e 
0 1 3 5 7 8
1 3 0 3 6 6
2 9 9 7 8 4