랭귀지/pandas
아래는 두 개의 동일한 구조를 가진 데이터프레임을 생성하고, 두 데이터프레임의 값을 비교하여 **틀린 행을 찾아내는 예제**
유키공
2025. 2. 18. 13:56
import pandas as pd
# 샘플 데이터 생성
data1 = {
'id': [1, 2, 3, 4, 5],
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'age': [25, 30, 35, 40, 45],
'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
data2 = {
'id': [1, 2, 3, 4, 5],
'name': ['Alice', 'Bob', 'Charlie', 'Daniel', 'Eva'], # 'David' -> 'Daniel'
'age': [25, 30, 35, 40, 50], # 45 -> 50
'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
# 데이터프레임 생성
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 두 데이터프레임 비교
comparison = df1.compare(df2)
# 틀린 행 찾기 (boolean indexing 사용)
mismatch_rows = df1[df1.ne(df2).any(axis=1)]
print("두 데이터프레임 비교 결과:")
print(comparison)
print("\n틀린 행:")
print(mismatch_rows)
# 틀린 행 찾기 (직접 비교)
mismatch_rows = df1[df1 != df2].dropna(how='all')
print("\n직접 비교한 틀린 행:")
print(mismatch_rows)