pandas 中groupby()方法运用

理解groupby

groupby函数是如何工作的?

相信学习过sql的童鞋对groupby函数都不陌生,在sql中groupby的工作原理是先分组,再聚合。在Python的pandas中groupby的工作流程大体相似,就是分组-处理-合并,先举一个例子,假设我们要对Dataframe的某一字段每一相同的项进行求和:

import numpy as np
import pandas as pd
se1 = pd.DataFrame([['A',2],['B',4],['C',6],['B',8],['A',9],['C',7]],columns=['KEY','值'])

在这里插入图片描述
假设我们要对KEY字段进行分组求和:

result=se1.groupby(se1['KEY']).sum()

在这里插入图片描述
其工作原理如下图所示:
在这里插入图片描述

pandas中groupby方法具体使用

通过某一列分组

df1 = pd.DataFrame([['北京',10,'晴','10'],['上海',15,'晴','10'],['广州',20,'下雨','10'],['深圳',30,'阴天','10'],['北京',10,'晴','11'],['上海',15,'晴','11'],['广州',20,'下雨','11'],['深圳',30,'阴天','11']])
df1.columns=['city','temperature','sta','date']

在这里插入图片描述
通过city字段进行分组

df_gruopby = df1.groupby(df1['city'])

在这里插入图片描述
事实上此时的df_gruopdy没有任何数据,他只是一个可以操作的生成器,可以迭代出具体的索引和dataframe子组:
我们不妨遍历一下,看看其中有什么?
在这里插入图片描述
这就是已经分组好的数据,当然我们也可以对Dataframe某一列分组:(也可以理解为把分好租的dataframe子组只保留某一列或某几列)

df_gruopby = df1['date'].groupby(df1['city'])
for i,k in df_gruopby:
    print(i)
    print(k)

在这里插入图片描述
此时就完成了,通过“city”这一字段,对df对象的“date”列进行分组
当然我们也可以计算每个城市天气的平均值:
在这里插入图片描述
另外groupby还可以通过函数、通过series进行分组,这里就不再一一加以叙述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值