Pandas: 두 dataframe을 행별로 비교하는 방법


다음 방법을 사용하여 두 개의 Pandas DataFrame을 행별로 비교할 수 있습니다.

방법 1: DataFrame을 비교하고 차이점이 있는 행만 유지

 df_diff = df1. compare (df2, keep_equal= True , align_axis= 0 )

방법 2: DataFrame을 비교하고 모든 행 유지

 df_diff = df1. compare (df2, keep_equal= True , keep_shape= True , align_axis= 0 )

다음 예에서는 다음 Pandas DataFrame과 함께 각 메서드를 사용하는 방법을 보여줍니다.

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                    ' points ': [18, 22, 19, 14],
                    ' assists ': [5, 7, 7, 9]})

print (df1)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'E'],
                    ' points ': [18, 30, 19, 20],
                    ' assists ': [5, 7, 7, 9]})

print (df2)

  team points assists
0 to 18 5
1 B 30 7
2 C 19 7
3 E 20 9

예 1: DataFrame을 비교하고 차이점이 있는 행만 유지

다음 코드는 두 DataFrame을 행별로 비교하고 적어도 하나의 열에서 차이가 있는 행만 유지하는 방법을 보여줍니다.

 #compare DataFrames and only keep rows with differences
df_diff = df1. compare (df2, keep_equal= True , align_axis= 0 )

#view results
print (df_diff)

        team points
1 coil B 22
  other B 30
3 choke D 14
  other E 20

DataFrame에 두 개의 서로 다른 행이 있음을 알 수 있습니다.

특히, 각 DataFrame의 인덱스 위치 1과 3에 있는 행은 적어도 하나의 열에서 서로 다른 값을 갖고 있음을 알 수 있습니다.

자체 라인의 값은 첫 번째 DataFrame의 값을 표시하고, 다른 라인의 값은 두 번째 DataFrame의 값을 표시합니다.

예를 들어 다음을 볼 수 있습니다.

  • 첫 번째 DataFrame의 인덱스 위치 1에 있는 행에는 팀 열에 B가 포함되고 포인트 열에 22가 포함됩니다.
  • 두 번째 DataFrame의 인덱스 위치 1에 있는 행에는 팀 열에 B가 포함되고 포인트 열에 30이 포함됩니다.

참고 : keep_equal=True 인수는 팬더에게 값을 동일하게 유지하도록 지시합니다. 그렇지 않으면 동일한 값이 NaN으로 표시됩니다.

예 2: DataFrame 비교 및 모든 행 유지

다음 코드는 keep_shape=True 인수를 사용하여 두 DataFrame을 행별로 비교하고 원본 DataFrame의 모든 행을 유지하는 방법을 보여줍니다.

 #compare DataFrames and keep all rows
df_diff = df1. compare (df2, keep_equal= True , keep_shape= True , align_axis= 0 )

#view results
print (df_diff)

        team points assists
0 choke A 18 5
  other A 18 5
1 coil B 22 7
  other B 30 7
2 choke C 19 7
  other C 19 7
3 choke D 14 9
  other E 20 9

결과 DataFrame에는 원본 DataFrame의 모든 행과 열이 포함됩니다.

참고 #1 : Compare() 함수는 두 DataFrame의 크기가 동일하다고 가정합니다.

참고 #2: pandas Compare() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas: 두 열을 비교하는 방법
Pandas: 세 개의 열을 비교하는 방법
Pandas: 서로 다른 두 DataFrame의 열을 비교하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다