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:일부 행을 제외한 모든 행을 삭제하는 방법