Pandas: 두 줄의 차이점을 찾는 방법
DataFrame.diff() 함수를 사용하여 Pandas DataFrame에 있는 두 행 간의 차이를 찾을 수 있습니다.
이 함수는 다음 구문을 사용합니다.
DataFrame.diff(기간=1, 축=0)
금:
- 마침표: 차이를 계산하기 위한 이전 줄 수입니다.
- 축: 행(0) 또는 열(1)에서 차이점을 찾습니다.
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예 1: 이전 각 행 간의 차이점 찾기
다음과 같은 팬더 DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8], ' sales ': [12, 14, 15, 15, 18, 20, 19, 24], ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]}) #view DataFrame df period sales returns 0 1 12 2 1 2 14 2 2 3 15 3 3 4 15 3 4 5 18 5 5 6 20 4 6 7 19 4 7 8 24 6
다음 코드는 DataFrame의 각 현재 행과 이전 행 간의 차이를 찾는 방법을 보여줍니다.
#add new column to represent sales differences between each row df[' sales_diff '] = df[' sales ']. diff () #view DataFrame df period sales returns sales_diff 0 1 12 2 NaN 1 2 14 2 2.0 2 3 15 3 1.0 3 4 15 3 0.0 4 5 18 5 3.0 5 6 20 4 2.0 6 7 19 4 -1.0 7 8 24 6 5.0
이전 여러 줄의 차이점도 찾을 수 있습니다. 예를 들어, 다음 코드는 현재 각 행과 세 행 이전에 표시된 행 간의 차이를 찾는 방법을 보여줍니다.
#add new column to represent sales differences between current row and 3 rows earlier df[' sales_diff '] = df[' sales ']. diff (periods= 3 ) #view DataFrame df period sales returns sales_diff 0 1 12 2 NaN 1 2 14 2 NaN 2 3 15 3 NaN 3 4 15 3 3.0 4 5 18 5 4.0 5 6 20 4 5.0 6 7 19 4 4.0 7 8 24 6 6.0
예시 2: 조건에 따른 차이 찾기
또한 DataFrame을 필터링하여 현재 행과 이전 행의 차이가 특정 값보다 작거나 큰 행을 표시할 수도 있습니다.
예를 들어 다음 코드는 현재 행 값이 이전 행 값 보다 작은 행만 반환합니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8], ' sales ': [12, 14, 15, 13, 18, 20, 19, 24], ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]}) #find difference between each current row and the previous row df[' sales_diff '] = df[' sales ']. diff () #filter for rows where difference is less than zero df = df[df[' sales_diff ']< 0 ] #view DataFrame df period sales returns sales_diff 3 4 13 3 -2.0 6 7 19 4 -1.0
추가 리소스
Pandas의 여러 열에서 고유한 값을 찾는 방법
열 값으로 Pandas DataFrame을 필터링하는 방법
Pandas DataFrame에서 인덱스로 행을 선택하는 방법