본문 바로가기
공부한 것들../Pandas

Pandas 집계함수

by bottle-an00 2024. 9. 14.

코드 프레소 [파이썬으로 배우는 데이터 분석 : Pandas] 강의 내용 정리

# 집계함수..?

Pandas에서도 Numpy와 마찬가지로 다양한 집계함수를 제공한다. 데이터가 저장된 자료구조가 DataFrame인지, Ndarray인지를 잘 파악하여 적절한 집계함수를 적용해야한다.

집계함수에 대한 설명은 이전 Numpy 집계함수에 대해 정리한 포스팅 링크를 남겨두겠다.

2024.09.12 - [공부한 것들../Numpy] - Numpy 집계 함수

 

Numpy 집계 함수

# 집계함수..? 집계 함수(Aggregate Function)는 데이터를 종합하여 특정 연산을 적용하는 함수를 일컫는 말이다. Numpy의 집계함수는 아래와 같이 정리할 수 있다.  sum() :합min() : 최소값max() : 최대값cu

bottle-an00.tistory.com

 

Pandas의 DataFrame에 대한 집계함수 중 df.count와 df.sum을 대표적으로 이해해보고 예시코드를 통해 활용에 대해 확인해보도록 한다. 

 

# API Reference

# Pandas.DataFrame.count

API Reference:: pandas.DataFrame.count

 

# parameter 정리

 

  • axis ({0 or 'index', 1 or 'columns'}, 기본값 0): 카운트가 생성되는 축을 정의한다.
    • 0 또는 'index': 각 열에 대한 카운트를 생성한다.
    • 1 또는 'columns': 각 행에 대한 카운트를 생성한다.
  • numeric_only (bool, 기본값 False): 숫자형(float, int) 또는 boolean 데이터만 포함할지를 결정한다.
    • True: 숫자형 또는 boolean 데이터만 계산에 포함된다.
    • False: 모든 데이터 유형이 포함될 수 있다.

# 예시 코드 ::pandas.DataFrame.count  적용 실습

import numpy as np

# 실습 데이터 생성
score = {'sub1': [3, 9, 1, 1, 9],
         'sub2': [2, 9, np.nan, np.nan, 8],
         'sub3': [np.nan, 1, 5, 5, 7],
         'sub4': [np.nan, 3, np.nan, 1, np.nan]}

df = pd.DataFrame(data=score)
print(df)


'''
count() 집계함수 실습
'''
print('\n#1 Count Function')
print(df.count())


'''
count 함수에 axis=1 인지 추가한 실습
'''
print('\n#2 Count Function with axis=1')
print(df.count(axis=1))

 

   sub1  sub2  sub3  sub4
0     3   2.0   NaN   NaN
1     9   9.0   1.0   3.0
2     1   NaN   5.0   NaN
3     1   NaN   5.0   1.0
4     9   8.0   7.0   NaN

#1 Count Function
sub1    5
sub2    3
sub3    4
sub4    2
dtype: int64

#2 Count Function with axis=1
0    2
1    4
2    2
3    3
4    3
dtype: int64

 

# Pandas.DataFrame.sum

API Reference:: pandas.DataFrame.sum

# parameter 정리

    • axis ({'index' (0), 'columns' (1)}): 함수가 적용될 축을 지정한다.
      • 0 또는 'index': 각 열에 대해 함수가 적용된다.
      • 1 또는 'columns': 각 행에 대해 함수가 적용된다.
    • skipna (bool, 기본값 True): 결과를 계산할 때 NA/누락된 값을 제외할지 여부를 결정한다.
    • numeric_only (bool, 기본값 False): 숫자형(float, int) 또는 boolean 형 데이터만 포함할지 여부를 결정한다. Series에서는 구현되지 않았다.
    • min_count (int, 기본값 0): 연산을 수행하는 데 필요한 최소 유효 값의 수를 지정한다. 유효 값이 min_count보다 적으면 결과는 NA가 된다.
    • **kwargs: 함수에 전달할 추가 키워드 인자.

# 예시 코드 ::pandas.DataFrame.sum적용 실습

import pandas as pd
import numpy as np

# 실습 데이터 생성
score = {'sub1': [3, 9, 1, 1, 9],
         'sub2': [2, 9, np.nan, np.nan, 8],
         'sub3': [np.nan, 1, 5, 5, 7],
         'sub4': [np.nan, 3, np.nan, 1, np.nan]}

df = pd.DataFrame(data=score)
print(df)


'''
sum() 집계함수 실습
'''
print('\n#3 Sum Function')
print(df.sum())


'''
sum() 함수에 skipna=False 인자 추가한 실습
'''
print('\n#4 Sum Function with skipna')
print(df.sum(skipna=False))
 sub1  sub2  sub3  sub4
0     3   2.0   NaN   NaN
1     9   9.0   1.0   3.0
2     1   NaN   5.0   NaN
3     1   NaN   5.0   1.0
4     9   8.0   7.0   NaN

#3 Sum Function
sub1    23.0
sub2    19.0
sub3    18.0
sub4     4.0
dtype: float64

#4 Sum Function with skipna
sub1    23.0
sub2     NaN
sub3     NaN
sub4     NaN
dtype: float64