Pandas Groupby:在Python中汇总、聚合和分组数据

news2024/11/26 12:50:15

GroupBy是一个非常简单的概念。我们可以创建一个类别分组,并对这些类别应用一个函数。这是一个简单的概念,但它是一种在数据科学中广泛使用的非常有价值的技术。在真实的的数据科学项目中,您将处理大量数据并一遍又一遍地尝试,因此为了提高效率,我们使用Groupby概念。Groupby概念非常重要,因为它能够有效地汇总、聚合和分组数据。

汇总

汇总包括统计,描述数据帧中存在的所有数据。我们可以使用describe()方法总结数据框中的数据。此方法用于从数据帧中获取min、max、sum、count值沿着该特定列的数据类型。

  • describe():此方法详细说明数据类型及其属性。

dataframe_name.describe()

  • unique():此方法用于从给定列中获取所有唯一值。

dataframe[‘column_name].unique()

  • nunique():这个方法类似于unique,但它会返回唯一值的计数。

dataframe_name[‘column_name].nunique()

  • info():此命令用于获取数据类型和列信息
  • columns:此命令用于显示数据框中存在的所有列名

示例:


# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
# display dataframe
dataframe

在这里插入图片描述

# describing the data frame
print(dataframe.describe())
 
print("-----------------------------")
# finding unique values
print(dataframe['Maths_marks'].unique())
 
print("-----------------------------")
# counting unique values
print(dataframe['Maths_marks'].nunique())
 
print("-----------------------------")
# display the columns in the data frame
print(dataframe.columns)
 
print("-----------------------------")
# information about dataframe
print(dataframe.info())

在这里插入图片描述

聚合

聚合用于获得数据帧中所有列或数据帧中特定列的均值、平均值、方差和标准差。

  • sum():返回数据帧的和

dataframe[‘column].sum()

  • mean():返回数据框中特定列的平均值
  • std():返回该列的标准差。
  • var():返回该列的方差
  • min():返回列中的最小值
  • max():返回列中的最大值

示例:


# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
# display dataframe
dataframe

在这里插入图片描述


# getting all minimum values from
# all columns in a dataframe
print(dataframe.min())
print("-----------------------------------------")
 
# minimum value from a particular
# column in a data frame
print(dataframe['Maths_marks'].min())
print("-----------------------------------------")
 
# computing maximum values
print(dataframe.max())
print("-----------------------------------------")
 
# computing sum
print(dataframe.sum())
print("-----------------------------------------")
 
# finding count
print(dataframe.count())
print("-----------------------------------------")
 
 
# computing standard deviation
print(dataframe.std())
print("-----------------------------------------")
 
# computing variance
print(dataframe.var())

在这里插入图片描述

分组

它用于通过使用groupby()方法对数据帧中的一个或多个列进行分组。Groupby主要是指涉及以下步骤中的一个或多个的过程:

  • 拆分:这是一个通过对数据集应用某些条件将数据拆分成组的过程。
  • 应用:它是一个过程,在这个过程中,我们将一个函数独立地应用于每个组
  • 组合:这是一个在应用groupby后将不同数据集组合在一起并生成数据结构的过程
# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
 
# group by name
print(dataframe.groupby('name').first())
 
print("---------------------------------")
# group by name with social_marks sum
print(dataframe.groupby('name')['social_marks'].sum())
print("---------------------------------")
 
# group by name with maths_marks count
print(dataframe.groupby('name')['Maths_marks'].count())
print("---------------------------------")
 
# group by name with maths_marks
print(dataframe.groupby('name')['Maths_marks'])

在这里插入图片描述

import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
# group by name
print(dataframe.groupby('name').first())
 
print("------------------------")
# group by name with social_marks sum
print(dataframe.groupby('name')['social_marks'].sum())
print("------------------------")
# group by name with maths_marks count
print(dataframe.groupby('name')['Maths_marks'].count())

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/770204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux(CentOS7)下源码编译 PostgreSQL13.10 安装手册

Linux(CentOS7)下PostgreSQL安装手册 文章目录 一、准备PostgreSQL二、安装PostgreSQL2.1解压安装包2.2编译PG2.3查看PG安装目录2.4配置PG环境变量2.5查看PG版本2.6创建postgres用户2.7创建PG数据库数据存放目录2.8授权PG数据库数据存放目录2.9切换postg…

一起学SF框架系列5.9-spring-Beans-bean实例创建

bean实例化底层采用Java反射机制,但Spring根据框架需要提供了更多的增强功能。 类关系图 InstantiationStrategy:接口-定义了创建RootBeanDefinition对应bean实例方法 SimpleInstantiationStrategy:简单bean的实例化处理。实现了Instantiati…

WEB:题目名称-文件包含

背景知识 题目 题目了文件包含,所以想到了php伪协议 构造payload尝试读取flag.php /?filenamephp://filter/readconvert.base64-encode/resourceflag.php 页面提示“do not hack”猜测可能是黑名单检测敏感字符串。猜测字符串哪些被禁用,这里输入单个…

【算法与数据结构】144、94、145LeetCode二叉树的前中后遍历(递归法、迭代法)

文章目录 一、题目二、递归算法三、迭代算法3.1 迭代算法13.2 迭代算法2 ——统一风格写法 四、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、递归算法 思路分析:这道题比较简单,不多说…

LCD—STM32液晶显示(2.使用FSMC模拟8080时序)

目录 使用STM32的FSMC模拟8080接口时序 FSMC简介 FSMC NOR/PSRAM中的模式B时序图 用FSMC模拟8080时序 重点:HADDR内部地址与FSMC地址信号线的转换(实现地址对齐) 使用STM32的FSMC模拟8080接口时序 ILI9341的8080通讯接口时序可以由STM32使…

PHP要怎么学--【强撸项目000】

强撸项目 总目录在000集 文章目录 本系列校训学习资源的选择环境的问题本人推荐 PHP视频的知识点分析总结题外话 本系列校训 用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干! 只要自己有电脑,前后项目都能搞&a…

sqli-labs 堆叠注入 解析

打开网页首先判断闭合类型 说明为双引号闭合 我们可以使用单引号将其报错 先尝试判断回显位 可以看见输出回显位为2,3 尝试暴库爆表 这时候进行尝试堆叠注入,创造一张新表 ?id-1 union select 1,database(),group_concat(table_name) from informatio…

给你一个网站,你如何测试?

首先,查找需求说明、网站设计 等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分: 功能性测试;界面测试;性能测试;数据库测试;安全…

AD如何查看PCB完成度?快来看这篇文

在Altium Designer(AD)中,很多工程师通过使用Design Rule Check(DRC,常用于检查PCB设计是否符合设计规范和要求)功能来检查PCB设计的完成度,但很多小白不太熟悉怎么去使用DRC,下面来…

深入浅出C语言—【函数】下

目录 5. 函数的嵌套调用和链式访问5.1嵌套调用5.2 链式访问 6. 函数的声明和定义6.1 函数声明6.2 函数定义 7. 函数递归👑7.1 什么是递归?7.2 递归的两个必要条件7.2.1 练习17.2.2 练习2 7.3 递归与迭代7.3.1 练习37.3.2 练习4 5. 函数的嵌套调用和链式访…

解决Missing cookie ‘JssionId‘ for method parameter of type String问题

错误描述如下所示: 上述错误是我在使用CookieValue注解,获取cookieID时出现的,错误原因是由于**CookieValue注解注解中的value值和浏览器中的cookie的jssionID不一致所导致的** 如下所示为浏览器中的CookieID的参数名 而我在注解中写的如下图…

浪涌保护器行业应用防雷选型方案

当今社会中,电气设备的使用范围越来越广泛,也越来越普及,而与之相关的浪涌保护器就显得尤为重要。在这个领域,有一种高品质的浪涌保护器 —— 地凯防雷SPD浪涌保护器,它可以为各种设备提供强大的保护,并在各…

YOLOv5——pytorch环境搭建

环境搭建是一个最最基础而又基本的事情,是一切工作开始前的基本要求。 由于YOLOv7和YOLOv5不兼容,这次用到了YOLOv5,我不得不再使用anaconda创建一个虚拟环境。 Tip:很多人不了解Anaconda存在的意义,就是为了弥补pyt…

四、DML-1.数据操作-添加

一、DML介绍 Data Manipulation Language 数据操作语言 用来对数据库中表的数据记录进行增删改操作。 二、添加数据 1、给指定字段添加数据 insert into employee(id, workno, name, gender, age, idcard,entrydate) values (1, 001,Itcast, 男, 18, 123456789012345678, 2…

kaggle新赛:学生摘要评估大赛赛题解析(NLP)

赛题名称:CommonLit - Evaluate Student Summaries 赛题链接: https://www.kaggle.com/competitions/commonlit-evaluate-student-summaries/ 赛题背景 摘要写作是所有年龄段学习者的一项重要技能。总结可以增强阅读理解能力,特别是在第二…

SOLIDWORKS工程图模板如何设置?

SOLIDWORKS工程图模板是非常重要的,它可以帮助工程师快速创建符合公司规范的工程图纸。本文将介绍SOLIDWORKS工程图模板的基本知识,包括如何创建和使用模板。 一、创建SOLIDWORKS工程图模板 首先,我们需要打开SOLIDWORKS软件,并选…

MySQL高阶语句之二

目录 ​编辑 一、子查询 1.1语法 1.2select 1.3insert 1.3update 1.4delete 1.5 exists 1.6别名as 二、MySQL视图 2.1功能 2.2区别 2.3联系 2.4 创建视图(单表) 2.5 创建视图(多表) 2.6修改原表数据 2.7修改视图数据 三、NULL值 一、子查询 子查询也被称作内查询…

虚拟机ubuntu1804打开联合标定工具箱的步骤(toolkit)

1、运行roscore roscore 2、进入到calibration文件夹打开终端 source devel/setup.bash3、运行rosrun打开即可 rosrun calibration_camera_lidar calibration_toolkit

iview的表格添加筛选功能需要注意的问题

给table的某列添加筛选功能 在table中通过给columns数据的项,设置 filters,可进行筛选,filters 接收一个数组。 然后再指定一个筛选函数 filterMethod 才可以进行筛选,filterMethod 传入两个参数value和 row。 如果指定 filter…

基于异步FIFO的串口回环测试

文章目录 前言一、异步FIFO简介二、串口简介2.1 数据接收模块(RX)2.1 数据发送模块(TX) 三、IP核说明与配置2.1 PLL IP核2.2 FIFO IP核 四、数据关联 前言 当涉及到串口通信的硬件设计和软件开发时,进行有效的测试是至关重要的。串口回环测试是一种常见的测试方法&a…