DevSSOM

파이썬 pandas - 데이터프레임 분석용 함수 본문

Python/기초

파이썬 pandas - 데이터프레임 분석용 함수

데브쏨 2021. 7. 26. 13:23
반응형

집계함수

집계함수는 많은 데이터 값을 입력으로 받아 이를 요약하는 하나의 값을 반환하는 기능을 하는데, count(), max(), min(), sum(), mean() 등의 함수들을 위와 같은 집계함수라고 함.

 

- df.count()

count 메소드를 활용해서 데이터 개수를 확인할 수 있음 (디폴트는 NaN값 제외)

data = {
    'korean' : [50, 60, 70],
    'math' : [10, np.nan, 40]
}

df = pd.DataFrame(data, index = ['a', 'b', 'c'])

# df 결과값
    korean  math
a      50  10.0
b      60   NaN
c      70  40.0 


# 각 컬럼별 데이터 개수
df.count(axis = 0) # 열 기준으로 카운트

# 결과값
korean    3
math      2
dtype: int64 


# 각 행별 데이터 개수
df.count(axis = 1)  # 행 기준으로 카운트

# 결과값
a    2
b    1
c    2
dtype: int64

 

- df.max() & df.min()

max, min 메소드를 활용해서 최대값과 최소값을 확인할 수 있음 (디폴트는 열 기준, NaN값 제외). 결과값은 float 실수형으로 나오게 됨.

data = {
    'korean' : [50, 60, 70],
    'math' : [10, np.nan, 40]
}

df = pd.DataFrame(data, index = ['a', 'b', 'c'])

# 데이터프레임
   korean  math
a      50  10.0
b      60   NaN
c      70  40.0 


# 각 컬럼별 최댓값
df.max() 

# 결과값
korean    70.0
math      40.0
dtype: float64 


# 각 컬럼별 최소값
df.min()

# 결과값
korean    50.0
math      10.0
dtype: float64

 

-df.sum() & df.mean()

sum, mean 메소드를 활용해서 합계와 평균을 계산을 할 수 있음 (디폴트는 열 기준, NaN값 제외). 결과값은 float 실수형으로 나오게 됨.

data = {
    'korean' : [50, 60, 70],
    'math' : [10, np.nan, 40]
}

df = pd.DataFrame(data, index = ['a', 'b', 'c'])

# 데이터프레임
   korean  math
a      50  10.0
b      60   NaN
c      70  40.0 


# 각 컬럼별 합계
df.sum()

# 결과값
korean    180.0
math       50.0
dtype: float64 


# 각 컬럼별 평균 
df.mean()

# 결과값
   korean  math
a      50  None
b      60  None
c      70  None

axis, skipna 인자를 활용할 수 있음.

  • axis = 0 이면 기본값으로 열 기준으로 계산, axis = 1이면 행을 기준으로 계산.
  • skipna = True 이면 기본값으로 NaN값들은 계산에서 스킵하고 없는 셈으로 침.
  • skipna = False 이면 (1) NaN값이 존재하는 컬럼의 평균을 구해서 (2) NaN값으로 대체함 (fillna() 함수 사용).  
data = {
    'korean' : [50, 60, 70],
    'math' : [10, np.nan, 40]
}

df = pd.DataFrame(data, index = ['a', 'b', 'c'])

# 데이터프레임
   korean  math
a      50  10.0
b      60   NaN
c      70  40.0 


# 각 행기준 합계
df.sum(axis = 1)

# 결과값
a     60.0
b     60.0
c    110.0
dtype: float64 


# 컬럼의 평균값으로 NaN값 대체해서 평균 구하기

# (1) NaN값이 있는 컬럼의 평균 구하기
B_avg = df['math'].mean()
print(B_avg)    # 25.0

# (2) NaN값 대체
df['math'] = df['math'].fillna(B_avg)

# (3) 대체된 NaN값으로 각 컬럼별 평균 구하기
df.mean(axis = 1, skipna = False)  # 행 기준 평균, NaN 값이 있으면 무시 X

# 결과값
a    30.0
b    35.0
c    55.0
dtype: float64

 

728x90
반응형
댓글