首页 > 编程语言 >Python基础操作之模块 -- pandas之groupby函数

Python基础操作之模块 -- pandas之groupby函数

时间:2024-06-08 17:57:43浏览次数:31  
标签:聚合 grouped Python DataFrame -- Score 分组 groupby

        groupby函数是pandas库中一个非常强大的功能,它允许你根据一个或多个列的值对DataFrame或Series进行分组,并对每个组执行各种聚合操作。

目录

示例详解

1. 导入必要的库和创建DataFrame

2. 使用groupby函数进行分组

3. 遍历分组并查看内容

4. 对分组执行聚合操作

5. 同时对多个列进行聚合操作

总结


 

示例详解

1. 导入必要的库和创建DataFrame

        首先,我们需要导入pandas库并创建一个示例DataFrame。

import pandas as pd  

# 创建一个示例DataFrame  
data = {  
    'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],  
    'Age': [25, 30, 35, 25, 30, 35],  
    'Score': [85, 90, 75, 95, 85, 80]  
}  
df = pd.DataFrame(data)

2. 使用groupby函数进行分组

        接下来,我们使用groupby函数根据'Name'列的值对DataFrame进行分组。

grouped = df.groupby('Name')

        这里,grouped是一个DataFrameGroupBy对象,它包含了原始DataFrame的分组信息,但并没有实际的数据。

3. 遍历分组并查看内容

        为了查看每个组的内容,我们可以使用for循环遍历grouped对象。

for name, group in grouped:  
    print(f"Group: {name}")  
    print(group)  
    print()

        在这个循环中,name是当前组的名称(即'Name'列的一个唯一值),而group是一个包含该组所有行的DataFrame。

4. 对分组执行聚合操作

        groupby的主要用途之一是对每个组执行聚合操作。pandas提供了许多内置的聚合函数,如mean(), sum(), count(), min(), max()等。

# 计算每个组的'Score'列的平均值  
average_scores = grouped['Score'].mean()  
print(average_scores)

        这里,average_scores是一个Series,其索引是唯一的组名(即不同的名字),值是对应组的'Score'列的平均值。

5. 同时对多个列进行聚合操作

        如果你想要同时对多个列进行聚合操作,可以使用agg方法,并传递一个字典,其中键是列名,值是聚合函数。

# 同时计算每个组的'Age'和'Score'列的平均值  
grouped_results = grouped.agg({'Age': 'mean', 'Score': 'mean'}).reset_index()  
print(grouped_results)

        在这个例子中,agg方法接受一个字典,其中'Age'和'Score'是列名,'mean'是我们要应用的聚合函数。reset_index()方法用于将结果中的索引重置为一个普通的列,这样结果就是一个普通的DataFrame了。

总结

        groupby函数是pandas中用于数据分组和聚合的强大工具。通过它,你可以根据一个或多个列的值将数据划分为不同的组,并对每个组执行各种聚合操作,从而获取有关数据的深入见解。

 

标签:聚合,grouped,Python,DataFrame,--,Score,分组,groupby
From: https://blog.csdn.net/wodertianna/article/details/139510145

相关文章

  • 通过nfs在ubuntu之间共享文件
    server端server端安装nfs-kernel-server,提供exportfs的应用,sudoaptinstallnfs-kernel-serverexportfs以什么属性共享什么文件等设置,在/etc/exportfs文件中设置,man5exportfs可以看设置的一些介绍,如下为一个设置,/home/zwl/work/daily192.168.2.34(rw,async,no_subtre......
  • k8s容器网络ovs vxlan流向总结
    ovs流表刷在br-int网桥上。容器网卡eth0另一端在ovsbr-int网桥上。容器网关gw在br-int网桥上,ip地址是从pod网段中分配。br-int网桥上有vxlan类型ovs端口,用于封包和解包。同节点主机->容器路由判断->iptablesOUTPUT->iptablesPOSTROUTING->容器网关->容器网卡ping容器IP通......
  • 题目集4~6的总结
    目录一.前言 nchu-software-oop-2024-上-4~知识点 nchu-software-oop-2024-上-5~知识点 nchu-software-oop-2024-上-6~知识点二.设计与分析一.答题判题程序-41.继承2.多态二.家居强电电路模拟程序-11.类的设计2.抽象类二.家居强电电路模拟程序-21.面向对象设计原则——单一......
  • 后缀数组学习笔记
    1.前置知识:基数排序1.1.思想现有如下序列:3,44,38,5,47,15,36,32,50,现在要用基数排序算法排序,要怎么做?基数排序的初始状态如下:按照个位将原序列中的数分组,放入对应的集合将分好的数按照个位的顺序取出,得到:将序列中的数重新按照十位分组,放入对应集合:将每一位上......
  • P2734 [USACO3.3] 游戏 A Game
    原题链接题解首先,玩家一先选,那么玩家一该选最左边还是最右边呢?我们假设玩家一有穿越时空的能力,知晓了选择左边后的最大得分和选了右边后的最大得分,那么玩家一便能确定选哪个设\(dp[l][r]\)为当区间为\(l,r\)时先手最大分数选左边的最大得分:\(sumr-dp[2][r]+a[1]\)选右......
  • Dockerfile编写级联构建参考
    Dockerfile编写级联构建Dockerfile级联构建是一种常见的技术,用于分阶段构建Docker镜像。这种方法可以帮助您优化镜像大小并减少构建时间。Dockerfile级联构建优点:分离了构建和运行环境,避免了不必要的依赖关系和文件,从而创建了一个更小、更安全的最终镜像。构建阶段可以......
  • SAP:SALV双击事件(Double Click)
    *&---------------------------------------------------------------------**&ReportZ17_30*&*&---------------------------------------------------------------------**&SALV双击事件*&*&------------------------------------------------......
  • React核心语法
    目录一、项目搭建二、JSX三、插值3.1条件渲染3.2列表渲染四、事件五、useState状态处理5.1对象形式的状态5.2数组形式的状态作为一个菜菜菜菜鸟,在之前的学习中,一直学习和使用的是VUE框架,在应聘实习公司的过程中,要求使用React框架,于是对自己的学习进行归纳总结,实现......
  • Java基于系统api监控文件新增事件
    得益于jvm对系统api的封装,本文的方法实际是对jvm封装后的方法的再次封装。在linux上,对于的api为inotify,在windows上,对于的api则为ReadDirectoryChangesW。本文应用的jdk版本为8。业务字段:@DatapublicclassFileMessageDto{privateLocalDateTimecreateTime;privat......
  • .net core使用PageOffice时提示POBrowser is not defined
    页面控制台提示: 说明PageOffice.js未引用,页面增加<scripttype="text/javascript"src="~/pageoffice.js"></script>如果还是访问不到这个js,检查一下Startup.cs,注册2个中间件即可。//Thismethodgetscalledbytheruntime.UsethismethodtoconfiguretheHT......