Pandas: groupby를 사용하여 평균을 계산하고 nan을 무시하지 않음


pandas groupby() 함수를 사용하여 한 열을 기준으로 그룹화하고 다른 열의 평균값을 계산할 때 pandas는 기본적으로 NaN 값을 무시합니다.

열에 NaN 값이 있는 경우 대신 NaN을 표시하려면 다음 기본 구문을 사용할 수 있습니다.

 df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

이 특정 예에서는 DataFrame by Team 열의 행을 그룹화한 다음 NaN 값을 무시하지 않고 포인트 열의 평균 값을 계산합니다.

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

예: pandas groupby()를 사용하고 NaN을 무시하지 마세요

다양한 농구 선수에 대한 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정합니다.

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [15, np.nan, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team points
0 to 15.0
1 A NaN
2 A 24.0
3 A 25.0
4 A 20.0
5 B 35.0
6 B 34.0
7B 19.0
8B 14.0
9B 12.0

팀별 로 그룹화된 평균 점수 를 계산하기 위해 다음 구문을 사용한다고 가정합니다.

 #calculate mean of points, grouped by team
df. groupby (' team ')[' points ']. mean ()

team
At 21.0
B 22.8
Name: points, dtype: float64

포인트 열에 A팀에 대한 NaN 값이 있더라도 각 의 평균 포인트 값이 반환됩니다.

기본적으로 Pandas는 평균을 계산할 때 NaN 값을 무시합니다.

실제로 NaN 이 있는 경우 NaN을 평균 값으로 표시하려면 다음 구문을 사용할 수 있습니다.

 #calculate mean points value grouped by team and don't ignore NaNs
df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

      points
team	
To NaN
B 22.8

이번에는 A팀의 평균 점수로 NaN 값이 반환된다는 점에 유의하세요.

Skipna=False 인수를 사용하여 팬더에게 평균을 계산할 때 NaN 값을 무시하지 않도록 지시했습니다.

추가 리소스

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

Pandas GroupBy를 사용하여 고유한 값을 계산하는 방법
Pandas Groupby에 기능을 적용하는 방법
Pandas GroupBy에서 막대 그래프를 만드는 방법

의견을 추가하다

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