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의 열을 비교하는 방법