《利用python进行数据分析》学习笔记--数据聚合与分组(groupby)

在数据聚合与分组中,主要包括:

根据一个或多个键(函数、数组、或dataframe的列名)拆分pandas对象

计算分组后数据的统计值,包括:计数,平均值,标准差,自定义函数

对dataframe的列应用各种各样的函数

实现组内转换或其他运算,规整化,线性回归,排名,选取子集

透视表,交叉表

分组分析

groupby 

就是将pandas的数据对象进行,拆分---应用---合并   的数据处理过程

如下面的:

df = pd.DataFrame({'key1':['a','a','b','b','a'],
                  'key2':['one','two','two','one','one'],
                  'data1':np.random.randn(5),
                  'data2':np.random.randn(5)})
df
返回
    key1    key2    data1    data2
0    a    one    0.127349    1.477832
1    a    two    -0.430755    0.397269
2    b    two    -0.911272    0.669960
3    b    one    0.370609    0.469459
4    a    one    0.968631    0.885551

当我们想要根据key1进行分组,并且计算data1列的平均值
则用到groupby进行拆分
grouped = df['data1'].groupby(df['key1'])
grouped.mean()

key1
a    0.221742
b   -0.270332

在这里,数据根据分组键进行了聚合,产生了新的Series,而且key1是唯一的索引值

当我们一次传入多个数组时:
mean = df['data1'].groupby([df['key1'],df['key2']]).mean()
mean

key1  key2
a     one     0.547990
      two    -0.430755
b     one     0.370609
      two    -0.911272
此时得到的Series具有一个层次化索引
mean.unstack()

key2    one    two
key1        
a    0.547990    -0.430755
b    0.370609    -0.911272

分组键可以是任何长度适当的数组,也可以直接是列名(字符串,数字,)

另外,groupby的size用法,能够返回一个含有分组大小的series

对分组进行迭代

猜你喜欢

转载自www.cnblogs.com/jx1111jx/p/9623391.html