728x90
반응형
In [1]:
import pandas as pd
In [13]:
url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user'
users = pd.read_csv(url,sep='|',index_col='user_id')
users.head()
Out[13]:
In [14]:
# groupby로 occupation을 선택하고
# 그 중에서 age column의 mean을 구한다.
users.groupby('occupation')['age'].mean()
Out[14]:
In [24]:
def gender2num(x):
if x == 'M':
return 1
if x == 'F':
return 0
users['gender_n'] = users['gender'].apply(gender2num)
a = users.groupby('occupation')['gender_n'].sum() / users.occupation.value_counts() * 100
# users.occupation.value_counts()
a.sort_values(ascending=False)
Out[24]:
In [32]:
users.groupby('occupation')['age'].agg(['min','max'])
Out[32]:
In [34]:
users.groupby(['occupation','gender'])['age'].mean()
Out[34]:
In [47]:
# 먼저 직업과 성별에 대해 나누고 총 남,녀수를 계산한다.
a = users.groupby(['occupation','gender']).agg({'gender':'count'})
# 그리고 직업별로 각 칼럼들의 합을 구함 = Gender의 총합
b = users.groupby(['occupation']).agg('count')
# a를 b로 나눠준다. level로 기준을 occupation으로 만든다. 소수점으로 나와서 * 100
c = a.div(b,level='occupation') * 100
# gender 칼럼만 본다
# loc으로 행은 다보고 열은 gender 선택
c.loc[:,'gender']
Out[47]:
728x90
반응형