#coding:utf-8
'''
使用groupby()可以给数据分组,数据分组的好处是你可以一次性计算得到所有分组中的统计量,比如想计算男女学生的平均成绩分别是多少,
可以先按照男女分组,然后计算平均数,我们不用计算完女生然后在计算男生,实际上是一次性完成的,这就是分组的好处。
'''
import pandas as pd
import numpy as np
df=pd.DataFrame({
'A':['foo','bar','foo','bar','foo','bar','foo','foo'],
'B':['one','one','two','three','two','two','one','three'],
'C':np.random.randn(8),#随机生成8位数
'D':np.random.randn(8)
})
print(df)
#可以以A列进行分组,使用groupby
grouped=df.groupby('A')
print (grouped.first())
#打印出来的grouped.first()为每一组的第一行数据
#我们还可以以两列以上进行分组,groupby参数为一个列表
grouped=df.groupby(['A','B'])
print (grouped.last())
#我们还可以根据列来分组,先创建一个get_type函数,如果列名为abem中之一,就分为组别vowel,反之为consonant
def get_type(letter):
if letter.lower() in 'abem':
return 'vowel'
else:
return 'consonant'
grouped = df.groupby(get_type,axis=1)
print(grouped.first())