In [2]:
#본 실습내용은 출판사 O'REILLY의 Pyton for Data Analisys를 참고하여 만들었음을 말씀드립니다.
from numpy.random import randn
import numpy as np
import os
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
import pandas as pd
In [6]:
tips = pd.read_csv('tips.csv')
tips = tips.sample(10)
tips
Out[6]:
1. 칼럼에 여러 가지 함수 적용하기¶
In [7]:
tips['tip_rate'] = tips['tip']/tips['total_bill']*100
tips
Out[7]:
In [9]:
groupedBysex_smoke = tips.groupby(['sex','smoker']) #sex 와 smoker 로 그룹화!
In [10]:
groupedBysex_smoke['tip_rate'].agg('mean') # 팁 비율에 대한 함수를 적용하고 할 때 agg() 함수를 사용하자.
# agg()는 내가 만든 함수도 사용할 수 있다는 장점이 있다.기본 내장함수를 사용한다면 필요하진 않다.
Out[10]:
In [11]:
def max_to_min (arr): # 내가 함수를 만들어보자. 최대값과 최소값의 차이를 반환하는 함수이다.
return arr.max()-arr.min()
In [12]:
groupedBysex_smoke['tip_rate'].agg(max_to_min)
Out[12]:
여러개의 함수 한번에 적용하기¶
In [13]:
groupedBysex_smoke['tip_rate'].agg(['mean','std',max_to_min]) # agg에 리스트로 여러 함수를 넣어주면 된다.
Out[13]:
함수적용 컬럼의 이름 부여하기¶
In [14]:
groupedBysex_smoke['tip_rate'].agg([('jjang','mean'),('jjong',max_to_min)])
# agg안에 (이름, 적용함수) 형태의 튜플로 리스트안에 담아주면 함수결과값의 이름을 반영해준다.
Out[14]:
사전객체를 agg에 적용하여 하나의 칼럼에 여러 함수 적용하기¶
In [16]:
groupedBysex_smoke.agg({'tip_rate':['mean','sum','std',max_to_min], 'size':['sum','mean']})
# tip_rate이라는 칼럼에는 평균,합,표준편차,최대최소차이를 적용하고 size에 대해선 합과 평균을 적용해라.
Out[16]:
2. 색인되지 않은 형태로 집계된 데이터 반환하기¶
In [20]:
groupedBysex_smoke.mean() # 현재 sex와 smoker 그룹화되어 항상 인덱스에 sex와 smoker가 들어가게되는데
# 이를 지울 수는 없을까? DF안에 data로 들어가게 할 수는 없을까? 있다. (답정너)
Out[20]:
In [22]:
# 그룹화할때 as_index를 False로 해준다면 그룹화기준이 되는 키도 하나의 값으로써 들어가게 된다.
groupedBysex_smoke = tips.groupby(['sex','smoker'],as_index=False)
groupedBysex_smoke.mean()
Out[22]:
In [ ]:
'데이터분석 with 파이썬 > pandas와 Numpy ' 카테고리의 다른 글
1. <Pandas> Gruopby 그룹연산의 기초 (0) | 2017.04.24 |
---|