Pandas dataframe에서 가장 가까운 값을 찾는 방법(예제 포함)


다음 기본 구문을 사용하여 특정 열에 지정된 값에 가장 가까운 값을 포함하는 pandas DataFrame의 행을 찾을 수 있습니다.

 #find row with closest value to 101 in points column
df_closest = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:1]]

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas DataFrame에서 가장 가까운 값 찾기

다양한 농구팀이 득점한 점수를 포함하는 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Nets', 'Hawks', 'Kings', 'Spurs', 'Cavs'],
                   ' points ': [99, 100, 96, 104, 89, 93]})

#view DataFrame
print (df)

    team points
0 Mavs 99
1 Nets 100
2 Hawks 96
3 Kings 104
4 Spurs 89
5 Cavs 93

이제 101 에 가장 가까운 도트 열의 값을 포함하는 DataFrame의 행을 선택한다고 가정합니다.

이를 위해 다음 구문을 사용할 수 있습니다.

 #find row with closest value to 101 in points column
df_closest = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:1]]

#view results
print (df_closest)

   team points
1 Nets 100

결과에서 Nets의 포인트 열에 101 에 가장 가까운 값이 있음을 알 수 있습니다.

pandas DataFrame의 전체 행 대신 tolist()를 사용하여 가장 가까운 값 자체만 표시할 수도 있습니다.

 #display value closest to 101 in the points column
df_closest[' points ']. tolist ()

[100]

또한 argsort() 함수 뒤의 값을 변경하여 가장 가까운 여러 값을 찾을 수 있습니다.

예를 들어, 다음 구문을 사용하여 포인트 열에서 101 에 가장 가까운 2개의 값이 있는 DataFrame의 행을 찾을 수 있습니다.

 #find rows with two closest values to 101 in points column
df_closest2 = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:2]]

#view results
print (df_closest2)

   team points
1 Nets 100
0 Mavs 99

결과에서 Nets는 포인트 열에서 101 에 가장 가까운 값을 갖고, Mav는 포인트 열에서 101 에 가장 가까운 값을 갖는 것을 볼 수 있습니다.

추가 리소스

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

Pandas: 열 값을 기준으로 행을 선택하는 방법
Pandas: 동일한 열 값을 가진 행을 결합하는 방법
Pandas:일부 행을 제외한 모든 행을 삭제하는 방법

의견을 추가하다

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