python数据分析——pandas DataFrame基础知识2

参考资料:活用pandas库

1、分组方式

        我们可以把分组计算看作“分割-应用-组合”(split-apply-combine)的过程。首先把数据分割成若干部分,然后把选择的函数(或计算)应用于各部分,最后把所有独立的分割计算组合成一个DataFrame。在pandas中可以使用DataFrame的groupby方法完成分组/聚合计算。

# 导入库
import pandas as pd
# 默认情况下,read_csv函数会读取逗号分隔文件
# Gapminder数据使用制表符分隔
# 可以吧sep参数设置为\t,显示指明使用制表符分隔
df=pd.read_csv(r"...\data\gapminder.tsv",sep="\t")
# 调用head()方法,默认显示前5行
print(df.head())
# 数据中买年的平均与其寿命是多少?
# 为了回答这个问题,需要先对数据按照年份进行分割,
# 然后获取lifeExp列,计算平均值
group_year_df=df.groupby("year")
print(type(group_year_df))
group_year_df_lifeExp=group_year_df["lifeExp"]
print(type(group_year_df_lifeExp))
print(group_year_df_lifeExp.mean())

        如果想使用多个变量对数据进行分组和分层,或想对多列执行相同的计算,我们可以使用列表来实现。如下:针对每个“年份-洲”对,计算响应的平均预期寿命和平均GDP。

# 在python中,可以使用反斜杠把一个长行分割为多行
# 下面两个语句是相同的
# 语句1
df.groupby(["year","continent"])[['lifeExp','gdpPercap']].mean()
# 语句2
df.groupby(["year","continent"])\
[['lifeExp','gdpPercap']].\
mean()

        如果想平铺DataFrame,可以使用reset_index方法。

multi_group_var=df.groupby(["year","continent"])[['lifeExp','gdpPercap']].mean()
flat=multi_group_var.reset_index()
print(flat.head(15))

2、分组频率计数

        我们可以使用nunique方法或value_counts方法来获取唯一值计数和频率计数。

# 使用nunique()方法计算Series中唯一值的数目(去重统计)
print(df.groupby("continent")["country"].nunique())
# 使用value_counts()方法计算Series中的频率
print(df.groupby("continent")["country"].value_counts())

3、基本绘图

        可视化在数据处理的每个步骤都很重要。在理解或清理数据时,可视化有助于识别数据中的趋势,并展示最终的发现。

# 查看世界人口各年度的预期寿命
global_yearly_life_exp=df.groupby("year")["lifeExp"].mean()
print(global_yearly_life_exp)
global_yearly_life_exp.plot()

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

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

相关文章

如何安全高效地进行分公司文件下发?

确保分公司文件下发过程中的保密性和安全性,是企业信息安全管理的重要组成部分。以下是一些关键步骤和最佳实践: 权限管理:确保只有授权的人员可以访问文件。使用权限管理系统来控制谁可以查看、编辑或下载文件。 加密传输:在文…

Linux|进程地址空间

Linux|内存地址空间 现象基本概念理解如何理解地址空间什么是划分区域&#xff1f;地址空间的理解为什么要有地址空间&#xff1f;如何进一步理解页表和写时拷贝如何理解虚拟地址 Linux真正的进程调度方案 现象 #include <stdio.h> #include <string.h> #include …

Go 使用 MongoDB

MongoDB 安装(Docker)安装 MongoDB Go 驱动使用 Go Driver 连接到 MongoDB在 Go 里面使用 BSON 对象CRUD 操作 插入文档更新文档查询文档删除文档 下一步 MongoDB 安装(Docker) 先装个 mongo&#xff0c;为了省事就用 docker 了。 docker 的 daemon.json 加一个国内的源地址…

Milvus基本概念及其应用场景

Milvus是一款云原生向量数据库&#xff0c;具备高可用、高性能、易拓展的特点&#xff0c;主要用于海量向量数据的实时召回。以下是关于Milvus的基本概念解释&#xff1a; 向量数据库&#xff1a;Milvus是一个向量数据库&#xff0c;用于存储、索引和管理通过深度神经网络和机…

用Java爬虫解决问题:探索网络数据的奥秘

网络爬虫是一种用于自动获取互联网信息的程序&#xff0c;常用于搜索引擎、数据挖掘等领域。本文将介绍如何使用Java编写网络爬虫来解决问题&#xff0c;并提供具体的代码实现及测试&#xff0c;帮助读者掌握爬虫技术并应用于实际项目中。 1. 爬虫原理 爬虫通过模拟人类浏览器…

C++容器——set

set容器 是一个关联容器&#xff0c;按一定的顺序存储一组唯一的元素。 set容器中的元素会根据元素的值自动进行排序&#xff0c;并且不允许包含重复的元素&#xff0c;基于二叉树实现的。 特点&#xff1a; 唯一性&#xff1a; set容器中的元素是唯一的&#xff0c;即容器中…

Java 区块链应用 | 割韭菜之假如K线涨跌可随意变动修改的实现

大家好&#xff0c;我是程序员大猩猩。 我一直在想&#xff0c;币圈这个行情时涨时跌&#xff0c;不断的割韭菜&#xff0c;不是由市场决定的&#xff01;而是由交易所直接输入一个数值后点击确定按钮而变化的&#xff0c;那么是不是很恐怖的行为。 为了验证这么一个想法&…

【代码随想录算法训练Day2】LeetCode 977.有序数组的平方、LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵II

Day2 数组、双指针 LeetCode 977.有序数组的平方【排序/双指针】 要将数组的每个元素平方后在按非递减的顺序&#xff0c;最简单的方法就是先将每个数平方&#xff0c;再将结果数组排序。 解法1&#xff1a;排序 class Solution { public:vector<int> sortedSquares(…

Java实现Excel导入和校验

文章目录 效果实现1,添加依赖2,实体类Member.javaMemberVO.java3,校验、监听器ValidationTool.javaExcelReadListener.java4,请求接口参考博文效果 输入:导入测试.xlsx postman调用实例: postman输出结果: 日志输出: 实现 1,添加依赖 easyexcel要去掉poi-ooxm…

maven打包SpringBoot项目报错Perhaps you are running on a JRE rather than a JDK?

maven打包SpringBoot项目报错信息如下 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?提示很明显&#xff0c;他需要JDK&#xff0c;你只有JRE 解决方法 通过yum搜索jdk可以看到以下两个应用 $ yum search j…

LabVIEW电机测试系统

LabVIEW电机测试系统 开发了一款基于LabVIEW的有限转角力矩电机测试系统&#xff0c;该系统针对现代高性能驱动系统中的关键组成部分——有限转角力矩电机的测试需求&#xff0c;提供了一种全面的测试解决方案。通过集成化的LabVIEW程序开发和高速数据采集硬件的应用&#xff…

SpringBoot:事务和AOP

事务 一组操作的集合,不可分割的工作单位,会被一起提交或撤销 要么同时成功,要么同时失败 实物操作 begin/start transaction 开启事务 commit 提交事务 rollback 回滚事务 eg:当我们需要保证数据的一致性,例如在删除时,删除了部门,却没有删除部门的员工,就会出现数据的…

开源模型应用落地-模型记忆增强-概念篇(一)

一、前言 语言模型的记忆是基于其训练数据。具体而言,对于较长的文本,模型可能会遗忘较早的信息,因为它的记忆是有限的,并且更容易受到最近出现的内容的影响。模型无法跨越其固定的上下文窗口,而是根据当前上下文生成回应。 提升模型记忆能力有多种方法,比如改进模型的结…

Leetcode—295. 数据流的中位数【困难】

2024每日刷题&#xff08;132&#xff09; Leetcode—295. 数据流的中位数 实现代码 class MedianFinder { public:MedianFinder() {}void addNum(int num) {if(maxHeap.empty() || num < maxHeap.top()) {maxHeap.push(num);} else {minHeap.push(num);}if(maxHeap.size(…

未授权访问:Jenkins未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 4、利用未授权访问写入webshell 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验&#xff0c;一共有好多篇&#xff0c;内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c;还有其他大佬总结好…

基于JSP动漫论坛的设计与实现(二)

目录 3. 系统开发环境及技术介绍 3.1 开发环境 3.2 开发工具 3.2.1 MyEclipse8.5 3.2.2 MySql 3.3 相关技术介绍 3.3.1 JSP技术简介 3.3.2 JDBC技术技术简介 3.3.3 MVC模式与Struts框架技术 4. 总体设计 4.1 系统模块总体设计 4.1.1 普通用户模块设计 4…

常见的获取dom元素的方法

获取 DOM 元素是前端开发中非常常见的操作。以下是几种常用的方法来获取 DOM 元素&#xff0c;以及它们的适用场景和示例&#xff1a; 1. getElementById 用于获取具有指定 id 属性的元素。 示例 let element document.getElementById(myId); 2. getElementsByClassName …

element ui的无法关掉的提示弹框

使用element的$alert组件的属性把X去掉和确定按钮和取消按钮去掉&#xff1b; import { MessageBox } from element-ui; MessageBox.alert(AI功能已到期或暂未开启, 友情提示, {showClose: false,showCancelButton: false,showConfirmButton: false }); 如果在router的路由守…

【QT教程】QT6音视频处理权威指南 QT音视频

QT6音视频处理权威指南 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费…

TrinityCore最新版本master安装@ubuntu22@win10

原名字是&#xff1a;trinitycore最新版本master安装dockerfreebsd15win10 说明一下&#xff0c;原计划是在win10的virtualbox安装FreeBSD&#xff0c;然后在FreeBSD系统安装docker-machine&#xff0c;再安装tinycore-linux&#xff0c;在里面再安装docker&#xff0c;docker…