본문 바로가기

코딩으로 익히는 Python/Pandas

[Python] 14. pandas DataFrame 통계 : sum(), unstack(), mean(), values, min(), idxmax(), median(), quantile(), count(), describe()예제

728x90
반응형
SMALL
import pandas as pd
import numpy as np

 

data =  {'eng':[10,30,50,70],
         'kor':[20,40,60,80],
         'math':[90,50,20,70]}
df = pd.DataFrame(data, index=['a','b','c','d'] )
df


데이터프레임 통계함수 default(column별), axis=1 (row별)

※ 일반함수들은 default(row별), axis=1(column별) 이므로 주의

ex) df.dropna(axis=1) 은 NaN이 있는 column삭제

 

df.sum()
[OUT] :

eng     160
kor     200
math    230
dtype: int64

 

df.sum(axis=1)
[OUT] :

a    120
b    120
c    130
d    220
dtype: int64

 

df.sum().sum()
# df.values().sum()
[OUT] :

590

 

sr = df.unstack() # dataFrame -> series
sr.index
[OUT] :

MultiIndex([( 'eng', 'a'),
            ( 'eng', 'b'),
            ( 'eng', 'c'),
            ( 'eng', 'd'),
            ( 'kor', 'a'),
            ( 'kor', 'b'),
            ( 'kor', 'c'),
            ( 'kor', 'd'),
            ('math', 'a'),
            ('math', 'b'),
            ('math', 'c'),
            ('math', 'd')],
           )

 

sr['eng']
[OUT] :

a    10
b    30
c    50
d    70
dtype: int64

 

sr['kor']['c']
[OUT] :

60

 

sr
[OUT] :

eng   a    10
      b    30
      c    50
      d    70
kor   a    20
      b    40
      c    60
      d    80
math  a    90
      b    50
      c    20
      d    70
dtype: int64

 

df.unstack().sum()
[OUT] :

590

 

df.mean()
[OUT] :

eng     40.0
kor     50.0
math    57.5
dtype: float64

 

df.mean(axis=1).round(2)
[OUT] :

a    40.00
b    40.00
c    43.33
d    73.33
dtype: float64

 

df.values
[OUT] :

array([[10, 20, 90],
       [30, 40, 50],
       [50, 60, 20],
       [70, 80, 70]])

 

df.min()
[OUT] :

eng     10
kor     20
math    20
dtype: int64

 

df.idxmax()
[OUT] :

eng     d
kor     d
math    a
dtype: object

 

df.idxmax(axis=1)
[OUT] :

a    math
b    math
c     kor
d     kor
dtype: object

 

df.median()
[OUT] :

eng     40.0
kor     50.0
math    60.0
dtype: float64

 

df.std()
[OUT] :

eng     25.819889
kor     25.819889
math    29.860788
dtype: float64

 

df.quantile([0.25,0.5,0.75])

 

df.count()
[OUT] :

eng     4
kor     4
math    4
dtype: int64

 

df.describe()
# df.describe()['eng']


review
- 데이터프레임 통계함수는 column별 계산이 default
728x90
반응형
LIST