두 데이터 프레임의 차이점 찾기
Pandas 데이터 프레임으로 작업할 때 두 데이터 프레임을 비교해야 하는 상황이 흔히 발생합니다. 그리고 그 사이의 차이점을 추출해 보세요. 예를 들어 기본 데이터 프레임(df1)과 하위 집합 데이터 프레임(df2)이 있고 df2에는 없는 df1의 모든 행과 열을 포함하는 새 데이터 프레임(df3)을 생성하려고 할 수 있습니다.
drop_duplicates 사용
이를 달성하는 가장 직접적인 방법은 drop_duplicates 함수. df1과 df2를 연결한 다음 연결된 데이터 프레임에 drop_duplicates를 적용하면 중복 행을 제거하고 고유한 행만 포함하는 데이터 프레임을 얻을 수 있습니다.
pd.concat([df1, df2]).drop_duplicates(keep=False)
중복 처리
그러나 df1 또는 df2 자체에 중복 행이 포함된 경우 drop_duplicates 접근 방식을 사용하면 잘못된 출력이 발생할 수 있습니다. 이 문제를 해결하려면 원본 복제본을 보존하는 대체 방법을 사용할 수 있습니다.
방법 1: 튜플과 함께 isin 사용
이 방법에는 데이터 프레임의 각 행을 튜플을 만들고 튜플이 두 데이터 프레임 모두에 존재하는지 확인합니다. 다른 데이터 프레임의 튜플과 일치하지 않는 행은 차이 데이터 프레임에 포함됩니다.
df1[~df1.apply(tuple, 1).isin(df2.apply(tuple, 1))]
방법 2: 표시기와 병합
또 다른 접근 방식에는 표시기 열을 사용하여 df1과 df2를 병합하는 것이 포함됩니다. 병합에서 How='left'를 지정하면 df2에 해당 행이 없는 df1의 행에 left_only라는 _merge 열 값이 할당됩니다. 그런 다음 이 표시 열을 기반으로 행을 필터링하여 차이 데이터 프레임을 얻을 수 있습니다.
df1.merge(df2, indicator=True, how='left').loc[lambda x: x['_merge'] != 'both']
위 내용은 두 Pandas DataFrame의 차이점을 어떻게 효율적으로 찾을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!