Python Pandas를 사용하여 중복 항목 목록 가져오기
다음은 Pandas를 사용하여 데이터프레임에서 중복 항목 목록을 가져오는 방법에 대한 단계별 안내입니다.
라이브러리 가져오기:
먼저 Pandas 라이브러리를 가져와야 합니다.
import pandas as pd
데이터 불러오기:
분석하려는 데이터를 불러와야 합니다. CSV 파일, Excel 파일 또는 SQL 데이터베이스와 같은 다양한 데이터 소스를 사용할 수 있습니다.
# CSV 파일에서 데이터 불러오기
data = pd.read_csv('data.csv')
# Excel 파일에서 데이터 불러오기
data = pd.read_excel('data.xlsx')
# SQL 데이터베이스에서 데이터 불러오기
import sqlalchemy as sqa
engine = sqa.create_engine('sqlite:///data.db')
data = pd.read_sql_table('table_name', engine)
중복 항목 찾기:
방법 1: duplicated()
함수 사용:
duplicated()
함수는 데이터프레임에서 중복된 행을 불리언 Series로 반환합니다.
duplicates = data.duplicated()
drop_duplicates()
함수는 데이터프레임에서 중복된 행을 제거하고 새 데이터프레임을 반환합니다. 원본 데이터프레임을 수정하지 않으려면 inplace=False
매개변수를 사용하십시오.
data_without_duplicates = data.drop_duplicates(inplace=False)
중복 항목 목록 가져오기:
duplicated()
Series 또는 drop_duplicates()
에서 제거된 행을 사용하여 중복 항목 목록을 만들 수 있습니다.
duplicate_list = data[duplicates].index.tolist()
duplicate_list = list(data.index - data_without_duplicates.index)
결과 출력:
print(duplicate_list)
위 코드는 데이터프레임에서 중복 항목 목록을 성공적으로 가져옵니다.
예제 코드: Python Pandas를 사용하여 데이터프레임에서 중복 항목 목록 가져오기
import pandas as pd
# CSV 파일에서 데이터 불러오기
data = pd.read_csv('data.csv')
# 중복 항목 찾기
duplicates = data.duplicated()
# 중복 항목 목록 가져오기
duplicate_list = data[duplicates].index.tolist()
# 결과 출력
print(duplicate_list)
이 코드는 다음과 같은 출력을 생성합니다.
[1, 3]
이는 데이터프레임의 1번째 및 3번째 행이 중복되었음을 의미합니다.
설명:
- 이 코드는
pandas
라이브러리를 가져오는 것으로 시작합니다. read_csv()
함수를 사용하여data.csv
파일에서 데이터를 불러옵니다.duplicated()
함수를 사용하여 데이터프레임에서 중복된 행을 찾습니다.- 중복된 행만 선택하는 Boolean Series를 만듭니다.
index.tolist()
메서드를 사용하여 Series를 Python 목록으로 변환합니다.- 마지막으로
print()
함수를 사용하여 중복 항목 목록을 출력합니다.
이 코드를 사용하여 데이터 소스 및 요구 사항에 맞게 조정할 수 있습니다.
- 다른 데이터 형식을 사용하는 경우 데이터를 불러오는 코드를 변경해야 할 수도 있습니다.
- 특정 열만 기준으로 중복 항목을 찾으려면
duplicated()
함수에subset
매개변수를 사용할 수 있습니다. drop_duplicates()
함수를 사용하여 원본 데이터프레임에서 중복 항목을 제거할 수도 있습니다.
Pandas에서 중복 항목을 찾는 대체 방법
groupby() 함수 사용:
groupby()
함수를 사용하면 데이터프레임을 그룹별로 분할하고 각 그룹 내 중복 항목을 식별할 수 있습니다.
import pandas as pd
# CSV 파일에서 데이터 불러오기
data = pd.read_csv('data.csv')
# 'id' 열을 기준으로 데이터 그룹화
grouped_data = data.groupby('id')
# 각 그룹에서 중복 항목 찾기
for name, group in grouped_data:
if group.duplicated().any():
print(f"그룹 {name}에서 중복 항목 발견:")
print(group[group.duplicated()])
isin() 함수 사용:
isin()
함수를 사용하여 특정 값 그룹이 데이터프레임에 여러 번 나타나는지 확인할 수 있습니다.
import pandas as pd
# CSV 파일에서 데이터 불러오기
data = pd.read_csv('data.csv')
# 특정 값 그룹이 여러 번 나타나는지 확인
potential_duplicates = data[data['id'].isin(data['id'].value_counts()[data['id'].value_counts() > 1].index)]
# 중복 항목 확인
for i in range(len(potential_duplicates)):
current_row = potential_duplicates.iloc[i]
for j in range(i + 1, len(potential_duplicates)):
other_row = potential_duplicates.iloc[j]
if current_row['id'] == other_row['id'] and current_row.index != other_row.index:
print(f"중복 항목 발견: {current_row}")
print(f"중복 항목 발견: {other_row}")
커스텀 함수 사용:
데이터프레임에서 중복 항목을 찾는 데 사용할 수 있는 자체 함수를 만들 수도 있습니다. 이 방법은 특정 요구 사항에 맞게 중복 항목을 정의할 수 있는 더 많은 유연성을 제공합니다.
import pandas as pd
def find_duplicates(data, column):
duplicates = []
for i in range(len(data)):
current_row = data.iloc[i]
for j in range(i + 1, len(data)):
other_row = data.iloc[j]
if current_row[column] == other_row[column]:
duplicates.append((current_row.index, other_row.index))
return duplicates
# CSV 파일에서 데이터 불러오기
data = pd.read_csv('data.csv')
# 'column_name' 열을 기준으로 중복 항목 찾기
duplicate_indices = find_duplicates(data, 'column_name')
# 중복 항목 출력
for i, j in duplicate_indices:
print(f"중복 항목: {data.iloc[i]}")
print(f"중복 항목: {data.iloc[j]}")
주의 사항:
- 각 방법에는 고유한 장단점이 있습니다. 데이터 및 요구 사항에 가장 적합한 방법을 선택하는 것이 중요합니다.
duplicated()
함수는 일반적으로 중복 항목을 찾는 가장 빠르고 효율적인 방법입니다.groupby()
함수는 각 그룹 내에서 중복 항목을 식별하는 데 유용합니다.isin()
함수는 특정 값 그룹이 여러 번 나타나는지 확인하는 데 유용합니다.- 커스텀 함수는 특정 요구 사항에 맞게 중복 항목을 정의할 때 유용합니다.
python pandas duplicates