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

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.mzph.cn/news/4754.shtml

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

相关文章

HUAWEI Mate X3:内外屏双享,折叠影像诠释精彩

HUAWEI Mate X3是全球首款四曲折叠手机,轻薄实力派。它采用了独创的寰宇舷窗设计,内外双屏高清呈现均支持120Hz疾速高刷,10.7亿色彩显示,获得德国莱茵TV色准和准确色彩投射双认证。无论是看视频、玩游戏、办公学习,还是…

T5模型: Transfer Text-to-Text Transformer(谷歌)

🔥 T5由谷歌发表于2019,《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》,最终版本发布在:JMLR。 一句话总结T5: 大一统模型,seq2seq形式完成各类nlp任务,大数据集…

JAVA15个常见面试题

下面是一些常见的Java面试题及答案: Java中的值传递和引用传递有什么区别? Java中的参数传递方式都是值传递,但是对于引用类型的参数,传递的是对象的引用副本。 什么是Java中的面向对象编程? 面向对象编程是一种编程范…

推荐系统-基于标签的Top-N个性化推荐实现

随着移动互联网的快速发展,UGC标签系统受到越来越多推荐应用,标签不但能反映用户的兴趣又能描述物品的本身特征。现有的标签推荐算法没有考虑用户的连续行为所产生的影响,于是人们提出了一种基于标签的个性化推荐算法。该算法将〈用户-标签-物…

谷歌云构建漏洞容易引发潜在的供应链攻击

云安全公司Orca Security在谷歌云构建(Google Cloud Build)服务中发现了一个关键的设计漏洞,该漏洞会让攻击者的权限升级,使他们可以在未经授权的情况下访问谷歌构件注册表(Google Artifact Registry)代码库…

VoIP监控工具有什么作用

VoIP 监控工具利用思科的 IPSLA 技术生成合成流量并监控客户端体验的呼叫质量。与被动监控VoIP指标相反,IPSLA技术允许IT管理员主动并在潜在问题发生之前检测到它们,这使组织能够轻松遵守严格的SLA指标。 思科 IPSLA 技术在两台设备之间创建流量&#x…

这样创建客户帮助中心,效果超好!

创建一个有效的客户帮助中心是为了为客户提供优质的支持和服务。在这个数字化时代,客户期望能够快速找到所需的信息,并得到准确和及时的解答。本文将分享创建有效客户帮助中心的最佳实践,帮助您提供出色的客户体验并提升客户满意度。 1. 了解…

Python 字典 get()函数使用详解,字典获取值

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 get函数使用详解 1、设置默认返回值2、嵌套字典取值3、get() 和 dict[key] 的区别…

linux centos7 静默安装 oracle 11g,【亲测有效】,包含远程连接、提供安装包

Centos7 安装oracle11g 环境准备 操作系统 centos7 oracle版本 oracle11g 终端软件 MobaXterm 192.168.46.61 oracleMaster 安装包 网盘地址 一、安装前准备 1、关闭selinux [rootoracleMaster ~]# vim /etc/selinux/config修改 SELINUX 为 disabled # This file controls …

Rust 近乎宗教般信仰的案例

Rust 近乎宗教般信仰的案例 亚历山大西多罗夫 众所周知,Rust 社区对 Rust 非常热情,有些人甚至责怪我们偶尔表现得像一个邪教。 恐怕我不会打消这个印象。因为在这篇文章将证明 Rust 使您成为一个更好的工程师、更好的管理者和更好的人。 作者背景 我的背…

java导出pdf(纯代码实现)

java导出pdf 在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf。导出pdf倒也不是特别大的问题关键就是麻烦。 导出pdf我知道的一共有3中方法: 方法一&#xff…

STM32定时器中断的使用示例

STM32定时器中断的使用示例 前言硬件和软件cubemx使能定时器中断中断服务函数案例输出结果 前言 上一篇博客实现了定时器输出pwm,这篇接着上次的工程,在上次的工程上做简单的配置即可 硬件和软件 硬件使用的是stm32h750vbt6;软件用到了stm…

全连接神经网络:分类与回归示例

分类 创建测试数据 import random import torch import torch.utils.datadef get_rectangle():"""随机得到矩形的宽和高,值域0-1之间的小数,判断这是否是一个"胖"的矩形:return:"""width random.random()height random.random()fa…

修改接口参数名和在Swagger中的展示名

背景 我们有一个接口要支持后端排序,所以需要在请求对象里面增加两个参数:排序字段名、排序方式(asc、desc)。 正好基础jar包中有一个类可以直接拿来用。 Data public class OrderByItem {private String column;private Strin…

创建型设计模式-1.单例设计模式

创建型设计模式-1.单例设计模式 创建型设计模式:核心目的就是给我们提供了一系列全新的创建对象的方式方法 一、简介 1.简述 单例设计模式(Singleton Design Pattern),一个类只允许创建一个对象(或实例&#xff09…

nginx+lua+redis环境搭建(文末赋上脚本)

目录 需求背景 环境搭建后nginx和redis版本 系统环境 搭建步骤 配置服务器DNS 安装ntpdate同步一下系统时间 安装网络工具、编译工具及依赖库 创建软件包下载目录、nginx和redis安装目录 下载配置安装lua解释器LuaJIT 下载nginx NDK(ngx_devel_kit&#xff09…

ceph安装部署

Ceph 简介 存储基础 单机存储设备 单机存储的问题 分布式存储的类型 分布式存储(软件定义的存储 SDS) Ceph 架构 Ceph 核心组件 ​编辑 Pool中数据保存方式支持两种类型 OSD 存储后端 Ceph 数据的存储过程 Ceph 集群部署 基于 ceph-deploy …

网络运维能转型到系统运维吗?

很多网工处于刚起步的初级阶段,各大公司有此专职,但重视或重要程度不高,可替代性强;小公司更多是由其它岗位来兼顾做这一块工作,没有专职,也不可能做得深入。 现在开始学习入门会有一些困难,不…

Hyperledger Fabric测试网络运行官方Java链码[简约版]

文章目录 启动测试网络使用peer CLI测试链码调用链码 启动测试网络 cd fabric-samples/test-networknetwork.sh的脚本语法是&#xff1a;network.sh <mode> [flag] ./network.sh up./network.sh createChannel在java源码路径下 chmod 744 gradlew vim gradlew :set ffu…

[SSM]GoF之工厂模式

目录 六、GoF之工厂模式 6.1工厂模式的三种形态 6.2简单工厂模式 6.3工厂方法模式 6.4抽象工厂模式&#xff08;了解&#xff09; 六、GoF之工厂模式 设计模式&#xff1a;一种可以被重复利用的解决方案 GoF&#xff08;Gang of Four)&#xff0c;中文名——四人组。 该书…