from pandas import DataFrame,Series
import numpy as np
#首先创建前面0-35的数值,以及abcdef列名
data_frame = DataFrame(np.arange(36).reshape(6,6),columns=list('abcdef'))
#在原有的表中添加一列,列的名称叫做key,值用aaabbb表示,一维的用Series
data_frame['key'] = Series(list('aaabbb'), name='key')
print(data_frame)
#按照key列进行分组
data_group = data_frame.groupby('key')
#输出a组数据信息
print(dict([x for x in data_group])['a'])
#输出b组数据信息
print(dict([x for x in data_group])['b'])
#求每个分组的和
print(data_group.agg(sum))
#求极差,需要自定义函数
def range_data_group(arr):
return arr.max() - arr.min()
print(data_group.agg(range_data_group))
#对某列数据应用不同的函数
print(data_group.agg([min,max,range_data_group]))
#对a求和,b求均值,c求极差
print(data_group.agg({'a':'sum' , 'b': 'mean' , 'c': range_data_group}))
表数据(类似Excel表格数据):
a b c d e f key
0 0 1 2 3 4 5 a
1 6 7 8 9 10 11 a
2 12 13 14 15 16 17 a
3 18 19 20 21 22 23 b
4 24 25 26 27 28 29 b
5 30 31 32 33 34 35 b