Published 2021. 9. 29. 20:02
728x90
반응형

집계함수 ‒ count

count 메서드 활용하여 데이터 개수 확인 가능 (Default : NaN값 제외)

data = {
  'korean': [50, 60, 70],
  'math': [10, np.nan, 40]
}
df = pd.DataFrame(data, index = ['a','b','c'])
df.count(axis = 0) # 열 기준
df.count(axis = 1) # 행 기준

집계함수 ‒ max, min

max, min 메서드 활용하여 최대, 최소값 확인 가능 (Default : 열 기준, NaN값 제외)

data = {
  'korean': [50, 60, 70],
  'math': [10, np.nan, 40]
}
df = pd.DataFrame(data, index = ['a','b','c'])
df.max() # 최댓값
df.min() # 최솟값

 

집계함수 ‒ sum, mean

sum, mean 메서드 활용하여 합계 및 평균 계산 (Default : 열 기준, NaN값 제외)

data = {
  'korean': [50, 60, 70],
  'math': [10, np.nan, 40]
}
df = pd.DataFrame(data, index = ['a','b','c'])
df.sum() # 합계
df.mean() # 평균

 

axis, skipna 인자 활용하여 합계 및 평균 계산 (행 기준, NaN값 포함 시)

✔ axis = 0 행 기준 / axis = 1 열 기준

✔ skipna = True NaN 무시 / skipna = False NaN 무시 X

data = {
  'korean': [50, 60, 70],
  'math': [10, np.nan, 40]
}
df = pd.DataFrame(data, index = ['a','b','c'])
df.sum(axis = 1) # 합계
df.mean(axis = 1, skipna = False) # 평균

 

NaN값이 존재하는 column의 평균 구하여 NaN값 대체

…
B_avg = df['math'].mean()
print(B_avg) # 25.0

# NaN값 대체
df['math'] = df['math'].fillna(B_avg)
# 평균
df.mean(axis = 1, skipna = False)

 


예제 👇

import numpy as np
import pandas as pd

data = {
    'korean' : [50, 60, 70],
    'math' : [10, np.nan, 40]
}
df = pd.DataFrame(data, index = ['a','b','c'])
print(df, "\n")
'''
   korean  math
a      50  10.0
b      60   NaN
c      70  40.0 
'''

# 각 컬럼별 데이터 개수
col_num = df.count()
print(col_num, "\n")
'''
korean    3
math      2
dtype: int64 
'''

# 각 행별 데이터 개수
row_num = df.count(axis = 1)
print(row_num, "\n")
'''
a    2
b    1
c    2
dtype: int64 
'''

# 각 컬럼별 최댓값
col_max = df.max()
print(col_max, "\n")
'''
korean    70.0
math      40.0
dtype: float64 
'''

# 각 컬럼별 최솟값
col_min = df.min()
print(col_min, "\n")
'''
korean    50.0
math      10.0
dtype: float64 
'''

# 각 컬럼별 합계
col_sum = df.sum()
print(col_sum, "\n")
'''
korean    180.0
math       50.0
dtype: float64 
'''

# 컬럼의 최솟값으로 NaN값 대체
math_min = df['math'].min()
df['math'] = df['math'].fillna(math_min)
print(df, "\n")
'''
   korean  math
a      50  10.0
b      60  10.0
c      70  40.0 
'''

# 각 컬럼별 평균
col_avg = df.mean()
print(col_avg, "\n")
'''
korean    60.0
math      20.0
dtype: float64 
'''
반응형

'프로그래밍 > Python' 카테고리의 다른 글

Pandas groupby (2)  (0) 2021.10.01
Pandas groupby (1)  (0) 2021.09.30
Pandas 데이터프레임 정렬  (0) 2021.09.28
Pandas 데이터 선택 및 변경하기  (0) 2021.09.27
Pandas 데이터 프레임  (0) 2021.09.24
복사했습니다!