Python 库学习笔记——分组计算利器:pandas 中的 groupby 技术

本文介绍了使用Python的Pandas库进行数据分组计算的方法,包括如何通过groupby函数对DataFrame进行分组,并演示了计算分组数据的平均值等统计操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近处理数据需要分组计算,又用到了groupby函数,温故而知新。

  分组运算的第一阶段,pandas 对象(无论是 Series、DataFrame 还是其他的)中的数据会根据你所提供的一个或多个键被拆分(split)为多组。拆分操作是在对象的特定轴上执行的。例如,DataFrame 可以在其行(axis=0)或列(axis=1)上进行分组。然后,将一个函数应用到各个分组并产生一个新值。最后,所有这些函数的执行结果会被合并到最终的结果对象中。结果对象的形式一般取决于数据上所执行的操作。

举例说明,生成随机DataFrame数据

输入

 

df = DataFrame({'key1':['a','a','b','b','a'],
                'key2':['one','two','one','two','one'],
                'data1':np.random.randn(5),
                'data2':np.random.randn(5)})

输出df

 


假设我们想要按 key1 进行分组,并计算 data1 列的平均值。

输入

 

df['data1'].groupby(df['key1']).mean() or df.groupby('key1')['data1'].mean()

输出

 

 

key1
a    0.310092
b   -0.785952
Name: data1, dtype: float64

 

 

假设我们想要按 key1 ,key2进行分组,并计算 data1 列的平均值。

输入

 

df['data1'].groupby([df['key1'],df['key2']]).mean() or df.groupby(['key1','key2'])[['data1']].mean()

输出

 

 

key1  key2
a     one    -0.078753
      two     1.087782
b     one    -1.346429
      two    -0.225475
Name: data1, dtype: float64


另外,我们可以对分组进行迭代,以多重键为例:

 

输入

 

for name,group in df.groupby('key1'):
    print (name)
    print (group)

输出

 

 

a
      data1     data2 key1 key2
0  0.033971  0.066088    a  one
1  1.087782 -0.095748    a  two
4 -0.191477 -0.057805    a  one
b
      data1     data2 key1 key2
2 -1.346429  0.648059    b  one
3 -0.225475  1.440988    b  two

 

 

 

参考资料:《利用python进行数据分析》




 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值