Pandas: 고유한 값을 찾고 nan을 무시하는 방법


다음 사용자 정의 함수를 정의하여 팬더에서 고유한 값을 검색하고 NaN 값을 무시할 수 있습니다.

 def unique_no_nan(x):
    return x. dropna (). single ()

이 함수는 NaN 값을 제외한 모든 고유 값을 포함하는 팬더 시리즈를 반환합니다.

다음 예에서는 다음 Pandas DataFrame을 사용하여 다양한 시나리오에서 이 함수를 사용하는 방법을 보여줍니다.

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Celtics', 'Celtics', 'Celtics'],
                   ' points ': [95, 95, 100, 113, 100, np.nan]})

#view DataFrame
print (df)

      team points
0 Mavs 95.0
1 Mavs 95.0
2 Mavs 100.0
3 Celtics 113.0
4 Celtics 100.0
5 Celtics NaN

예 1: Pandas 열에서 고유한 값을 찾고 NaN 값을 무시합니다.

DataFrame의 포인트 열에 모든 고유 값을 표시하기 위해 pandas Unique() 함수를 사용한다고 가정해 보겠습니다.

 #display unique values in 'points' column
df[' points ']. single ()

array([ 95., 100., 113., no])

Unique() 함수는 기본적으로 결과에 nan을 포함합니다.

그러나 대신 사용자 정의 Unique_no_nan() 함수를 사용하여 포인트 열에 고유한 값을 표시한다고 가정해 보겠습니다.

 #display unique values in 'points' column and ignore NaN
unique_no_nan(df[' points '])

array([ 95., 100., 113.])

우리 함수는 NaN을 제외하고 포인트 열의 모든 고유 값을 반환합니다.

예시 2: Pandas Groupby에서 고유한 값을 찾고 NaN 값을 무시합니다.

pandas groupby()agg() 함수를 사용하여 열별로 그룹화된 포인트 열의 모든 고유 값을 표시한다고 가정합니다.

 #display unique values in 'points' column grouped by team
df. groupby (' team ')[' points ']. agg ([' single '])

	unique
team	
Celtics [113.0, 100.0, nah]
Mavs [95.0, 100.0]

Unique() 함수는 기본적으로 결과에 nan을 포함합니다.

그러나 대신 사용자 정의 Unique_no_nan() 함수를 사용하여 열별로 그룹화된 포인트 열의 고유 값을 표시한다고 가정해 보겠습니다.

 #display unique values in 'points' column grouped by team and ignore NaN
df. groupby (' team ')[' points ']. apply ( lambda x: unique_no_nan(x))

team
Celtics [113.0, 100.0]
Mavs [95.0, 100.0]
Name: points, dtype: object

우리 함수는 NaN 값을 계산하지 않고 각 포인트 열에 있는 모든 고유 값을 반환합니다.

추가 리소스

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

Pandas: DataFrame에서 단일 행을 선택하는 방법
Pandas: 인덱스 열에서 고유한 값을 얻는 방법
Pandas: 두 열의 고유한 조합을 계산하는 방법

의견을 추가하다

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