天天看热讯:Python groupby函数图文详解
一、分组原理
【资料图】
核心:
1、不论分组键是数组、列表、字典、Series、函数,只要其与待分组变量的轴长度一致都可以传入groupby进行分组。
2、默认axis=0按行分组,可指定axis=1对列分组。
groupby()语法格式
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, group_keys=True, squeeze=False, observed=False, **kwargs)
groupby原理
groupby就是按XX分组,比如将一个数据集按A进行分组,效果如下
使用groupby实现功能
import numpy as np import pandas as pd data = pd.DataFrame({ "name": ["Tom", "Kaggle", "Litter", "Sam", "Sam", "Sam"], "race": ["B", "C", "D", "E", "B", "C"], "age": [37.0, 61.0, 56.0, 87.0, 58.0, 34.0], "signs_of_mental_illness": [True, True, False, False, False, False] }) data.groupby("race")
返回结果如上 得到一个叫DataFrameGroupBy的东西,pandas不能直接显示出来 可以调用list显示出来
groupby()的配合函数 函数适用场景备注.mean()均值.count()计数.min()最小值.mean().unstack()求均值,聚合表的层次索引不堆叠.size()计算分组大小GroupBy的size方法,将返回一个含有分组大小的Series.apply().agg()
这里演示.mean()和.count()
# mean() data.groupby("name")["age"].mean() # count() data.groupby("name")["age"].count() data.groupby("age").count()
也可以根据单键多列进行聚合
# 单键多列聚合 data.groupby("name")[["race","age",]].count()
.agg操作 可以取多个函数进行选择 有时候我们既需要平均值,有需要计数(也可是取一个)
agg为列表
print(data.groupby("name")["age"].agg(["mean"])) print(data.groupby("name")["age"].agg(["mean","count"]))
也可以传入字典,对组内不同列采取不同的操作
print(data.groupby("race").agg({"age": np.median, "signs_of_mental_illness": np.mean}))
.apply()
可以使用我们自己所创建的函数
print("apply之前") grouped = data.groupby("name") for name, group in grouped: print(name) print(group) print("\n") print("apply之后") print(data.groupby("name").apply(lambda x: x.head(2)))
简单操作基本介绍完成
有时候需要将聚合的另一列放到一起 并且取消键的重复值 这个时候可以这样做
上面是构建的数据,需要对订购时间进行处理,这里我们是将月份+天数/30,然后对ID列进行去重,并将后面Time列计算的结果放到一起
import numpy as np import pandas as pd data = pd.read_excel("订购时间预测2.xlsx") def cut_m_d(x): return round(x.month + x.day / 30, 2) data["m_d"] = data["Time"].apply(cut_m_d) grouped = data.groupby("ID") # 这一步是去重(ID),不去重会出现错误 result = grouped["m_d"].unique() result2 = result.reset_index() print(result2)
总结
到此这篇关于Pythongroupby函数详解的文章就介绍到这了,更多相关groupby函数详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单