데이터프레임의 차이점을 효과적으로 비교하고 표시하기
소개
둘 사이의 차이점을 식별하고 이해하기 데이터프레임은 데이터 분석의 일반적인 작업입니다. 과거 데이터를 현재 추세와 비교하거나 데이터베이스의 변경 사항을 추적하는 경우 이러한 변경 사항을 정확하게 강조 표시하는 기능이 중요합니다.
문제 설명
두 개의 데이터 프레임이 있다고 가정합니다. 서로 다른 두 달의 학생 명단 정보("StudentRoster Jan-1" 및 "StudentRoster Jan-2")가 포함되어 있습니다. 우리의 목표는 각 행의 새 값과 기존 값을 모두 표시하여 두 데이터프레임 간의 변경 사항을 명확하게 표시하는 HTML 테이블을 만드는 것입니다.
해결책
변경된 행 식별
첫 번째 단계는 실제로 변경된 행을 확인하는 것입니다. any() 함수를 사용하여 각 행의 차이점을 확인할 수 있습니다.
<code class="python">import pandas as pd import numpy as np ne = (df1 != df2).any(1)</code>
이렇게 하면 True가 변경된 행을 나타내는 부울 시리즈가 반환됩니다.
변경된 값 추출
다음으로 실제 변경된 값을 추출해야 합니다. .stack() 메서드를 사용하여 데이터프레임을 단일 열로 변환한 다음 변경된 값에 대해 이 열을 필터링합니다.
<code class="python">ne_stacked = (df1 != df2).stack() changed = ne_stacked[ne_stacked] changed.index.names = ['id', 'col']</code>
이렇게 하면 변경된 값의 인덱스와 열 이름이 제공됩니다.
이전 값과 새 값 추출
변경된 값의 색인을 사용하여 변경된 각 항목에 대한 이전 값과 새 값을 추출할 수 있습니다.
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
HTML 테이블 생성
마지막으로 추출된 값을 결합하여 HTML 테이블을 생성할 수 있습니다.
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)</code>
이 데이터 프레임에는 "from"이라는 두 개의 열이 포함되어 있습니다. 변경된 각 항목에 대한 원래 값과 새 값을 표시하는 "to"입니다. 데이터프레임의 인덱스는 변경이 발생한 행과 열을 식별합니다.
변경된 값과 이전 및 새 값을 나란히 표시함으로써 이 HTML 테이블은 변경 사항에 대한 명확하고 포괄적인 개요를 제공합니다. 두 데이터프레임 사이에 있습니다.
위 내용은 Python을 사용하여 데이터프레임 차이점을 효과적으로 비교하고 표시하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!