Updated:

import pandas as pd
import numpy as np

1. Grouping

DataFrame은 특정 column을 기준으로 grouping할 수 있다.

df.groupby(by)을 이용하면 by를 기준으로 DataFrame을 grouping한다.

이렇게 groupby를 이용해 grouping을 하게 되면 SQL의 groupby처럼 다양한 통계함수를 적용할 수 있다.(mean(), median(),std(), var())

d = {'name':['John','Amy','Kate','Rose','Candy',"Alba"],
     'class': ['math'] * 3 + ['science'] *3,
     'score': np.random.uniform(10,60,(6,))}

df = pd.DataFrame(d,index=list('abcdef'))

df
name class score
a John math 20.564261
b Amy math 40.301031
c Kate math 43.148579
d Rose science 35.045047
e Candy science 12.243794
f Alba science 19.477356
df.groupby('class').size()
class
math       3
science    3
dtype: int64
df.groupby('class').sum()
score
class
math 104.013872
science 66.766197
df.groupby('class').median()
score
class
math 40.301031
science 19.477356
groupby_class = df.groupby('class')

for sub, group in groupby_class:
    print(sub + " count:" + str(groupby_class.size()[sub]))
    print(group)
math count:3
   name class      score
a  John  math  20.564261
b   Amy  math  40.301031
c  Kate  math  43.148579
science count:3
    name    class      score
d   Rose  science  35.045047
e  Candy  science  12.243794
f   Alba  science  19.477356

Leave a comment