Python Library/Pandas

[Pandas - Python] Removing Duplicates - drop_duplicates() (중복 제거)

바보1 2022. 6. 13. 23:48

Removing Duplicates - drop_duplicates()

 

우선 DataFrame을 하나 만들겠습니다.

data = pd.DataFrame({'k1': ['one', 'two'] * 3 + ['two'],
                     'k2': [1, 1, 2, 3, 3, 4, 4]})
data

	k1	k2
0	one	1
1	two	1
2	one	2
3	two	3
4	one	3
5	two	4
6	two	4

이때 데이터가 중복되었는지를 알기 위해선 duplicated() 함수를 이용하면 됩니다.

data.duplicated()

0    False
1    False
2    False
3    False
4    False
5    False
6     True
dtype: bool

중복을 제거하기 위해 drop_duplicates() 함수를 사용하겠습니다.

data.drop_duplicates()

	k1	k2
0	one	1
1	two	1
2	one	2
3	two	3
4	one	3
5	two	4

6번 행이 삭제되었습니다.

 

data['v1'] = range(7)
data.drop_duplicates(['k1'])

	k1	k2	v1
0	one	1	0
1	two	1	1

보시다시피 v1 column에 0 ~ 6까지의 수를 넣었고, drop_duplicates()를 통해 k1 column의 중복된 값을 모두 삭제한 결과입니다.

 

이때 keep = 'last'를 넣는다면, 중복된 행 중에서 뒤에 행을 남깁니다.

data.drop_duplicates(['k1', 'k2'], keep='last')

	k1	k2	v1
0	one	1	0
1	two	1	1
2	one	2	2
3	two	3	3
4	one	3	4
6	two	4	6