파이썬 pandas로 중복 데이터를 제거하는 방법은?
_____A1: pandas의 `DataFrame.duplicated()` 메서드를 사용합니다. 이 메서드는 각 행이 중복인지 아닌지 불리언 값으로 반환합니다. 예: `df.duplicated()`.
Q2: 중복된 행을 모두 제거하려면 어떻게 해야 하나요?
A2: `DataFrame.drop_duplicates()` 메서드를 사용합니다. 기본적으로 첫 번째 중복 행을 남기고 이후 중복 행을 제거합니다. 예: `df.drop_duplicates()`.
Q3: 중복 제거 후 결과를 원본 DataFrame에 적용하려면?
A3: `drop_duplicates()`에 `inplace=True` 옵션을 사용하면 원본 DataFrame이 바로 수정됩니다.
예: `df.drop_duplicates(inplace=True)`.
Q4: 특정 컬럼을 기준으로 중복을 제거하려면?
A4: `subset` 파라미터에 컬럼 이름 혹은 리스트를 지정합니다. 예: `df.drop_duplicates(subset=['col1', 'col2'])`.
Q5: 중복된 행 중 마지막 행을 남기고 싶을 때 방법은?
A5: `keep` 파라미터에 `'last'`를 지정합니다. 기본값은 `'first'`.
예: `df.drop_duplicates(keep='last')`.
Q6: 중복된 모든 행을 제거하고 싶을 때는?
A6: `duplicated()`와 `drop`을 조합하거나 `keep=False` 옵션을 사용합니다.
예: `df.drop_duplicates(keep=False)`는 모든 중복 행을 제거합니다.
Q7: 중복 판정 시 인덱스도 포함시키고 싶나요?
A7: `drop_duplicates()`는 인덱스는 기본적으로 검사하지 않습니다. 인덱스를 컬럼으로 변환 후 처리하거나 인덱스를 reset 후 수행해야 합니다.
Q8: 데이터가 많을 때 중복 제거 시 성능을 고려해야 하나요?
A8: 대용량 데이터는 `drop_duplicates()`가 비교적 효율적이나 메모리 사용량이 많으면 chunk 단위로 나누어 처리하는 것도 방법입니다.
Q9: 중복 행 위에 새로운 컬럼으로 표시하고 싶을 땐?
A9: `duplicated()` 결과를 새로운 컬럼에 저장하면 됩니다. 예: `df['is_duplicate'] = df.duplicated()`.
Q10: 중복된 특정 컬럼 값만 제거하고 싶을 때 방법은?
A10: `subset`에 해당 컬럼만 지정 후 `drop_duplicates()`를 사용하여 중복된 해당 컬럼 값 기준으로 행을 제거합니다.
예: `df.drop_duplicates(subset=['column_name'])`.
Pandas의 `drop_duplicates()` 메서드를 사용하면 DataFrame에서 중복된 행을 쉽게 제거할 수 있습니다.
이 메서드는 기본적으로 모든 열을 기준으로 중복을 확인하지만, 특정 열에 대해서만 중복 제거를 수행할 수도 있습니다.
다음은 Pandas로 중복 데이터를 제거하는 방법에 대한 기본적인 예제입니다.
1. 기본 사용법 우선, `pandas` 라이브러리를 임포트하고 예제 데이터를 생성합니다.
```python import pandas as pd 예제 데이터 생성 data = { 'A': [1, 2, 2, 3, 3, 3], 'B': ['a', 'b', 'b', 'c', 'c', 'c'], 'C': [10, 20, 20, 30, 30, 30] } df = pd.DataFrame(data) print("원본 DataFrame:") print(df) ``` 
2. 중복 데이터 제거 이제 `drop_duplicates()` 메서드를 사용하여 중복된 행을 제거합니다.
```python 중복된 행 제거 df_unique = df.drop_duplicates() print("\n중복 제거 후 DataFrame:") print(df_unique) ```
3. 특정 열을 기준으로 중복 제거 특정 열을 기준으로 중복을 제거하고 싶다면 `subset` 매개변수를 사용할 수 있습니다.
```python 특정 열(A, B)을 기준으로 중복 제거 df_unique_subset = df.drop_duplicates(subset=['A', 'B']) print("\n특정 열 기준으로 중복 제거 후 DataFrame:") print(df_unique_subset) ```
4. 중복 제거 시 마지막 중복 유지하기 기본적으로 `drop_duplicates()`는 첫 번째 중복된 값을 유지하지만, `keep` 매개변수를 사용하여 다른 중복 행 유지 방식을 선택할 수 있습니다.
- `keep='first'`: 첫 번째 중복 유지 (기본값) - `keep='last'`: 마지막 중복 유지 - `keep=False`: 모든 중복 제거 예를 들어, 마지막 중복을 유지하고 싶다면 다음과 같이 합니다.
```python 마지막 중복 유지 df_unique_last = df.drop_duplicates(keep='last') print("\n마지막 중복 유지한 DataFrame:") print(df_unique_last) ```
5. 인덱스 재설정 중복을 제거한 후 인덱스를 재설정하려면 `reset_index()` 메서드를 사용할 수 있습니다.
```python 인덱스 재설정 df_reset_index = df_unique.reset_index(drop=True) print("\n인덱스 재설정 후 DataFrame:") print(df_reset_index) ``` 이상으로 Pandas에서 중복 데이터를 제거하는 기본적인 방법을 설명했습니다.
필요에 따라 옵션을 조정하여 원하는 방식으로 중복을 처리할 수 있습니다.
작성자:
김재성 [비회원]
| 작성일자: 1년 전
2025-02-10 05:31:03
조회수: 175 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 175 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.