政安晨:快速学会~机器学习的Pandas数据技能(四)(汇总与映射)

从数据中提取价值!


概述

在上一篇文章中,我们学习了如何从DataFrame或Series中选择相关数据。从我们的数据表示中选择正确的数据对于完成工作非常重要,正如我们在练习中所演示的那样。

然而,数据并不总是以我们想要的格式直接从内存中出来。有时我们需要做一些额外的工作来重新格式化数据以适应当前的任务。本篇将介绍我们可以应用于数据的不同操作,以使输入数据“恰到好处”。

咱们还是使用上篇文章中的《葡萄酒杂志》的数据进行演示,大家可以去我上一篇文章中的头部下载。

政安晨:快速学会~机器学习的Pandas数据技能(三)(重命名与合并)icon-default.png?t=N7T8https://blog.csdn.net/snowdenkeke/article/details/136081348

import pandas as pd
pd.set_option('display.max_rows', 5)
import numpy as np
reviews = pd.read_csv("./winemag-data-130k-v2.csv", index_col=0)
reviews

汇总函数

Pandas提供了许多简单的“汇总函数”(非官方名称),可以以某种有用的方式对数据进行重组。例如,考虑describe()方法:

该方法生成给定列属性的高级摘要。它是类型感知的,意味着其输出根据输入的数据类型而改变。上面的输出仅对数值数据有意义;对于字符串数据,我们得到以下结果:

如果您想要获取DataFrame或Series中某一列的特定简单汇总统计信息,通常有一个方便的pandas函数可以实现。

例如,要查看分配的点数的平均值(如一款平均评分的葡萄酒的表现如何),可以使用mean()函数:

reviews.points.mean()

要查看独特值的列表,我们可以使用unique()函数:

reviews.taster_name.unique()

要查看数据集中的唯一值列表以及它们出现的频率,我们可以使用value_counts()方法:

reviews.taster_name.value_counts()

映射

地图是从数学中借用的一个术语,表示将一个值集合“映射”到另一个值集合的函数。在数据科学中,我们经常需要从现有数据创建新的表示形式,或者将数据从现在的格式转换为我们希望的格式。地图是处理这项工作的方法,因此它们对于完成工作非常重要!

有两种常用的映射方法。

map()是第一个,也稍微简单一些。例如,假设我们想要将葡萄酒得分重新平均到0。我们可以按照以下方式实现:

review_points_mean = reviews.points.mean()
reviews.points.map(lambda p: p - review_points_mean)

传递给map()的函数应该期望从Series中接收一个单值(在上面的例子中是一个点值),并返回该值的转换版本。map()返回一个新的Series,其中所有的值都被你的函数转换过。

如果我们想通过调用每一行的自定义方法来转换整个DataFrame,则可以使用apply()方法来实现相同的功能。

def remean_points(row):row.points = row.points - review_points_meanreturn rowreviews.apply(remean_points, axis='columns')

如果我们在调用reviews.apply()的时候指定axis='index',那么我们需要传递一个函数来转换每一行,而不是每一列。

需要注意的是,map()和apply()分别返回新的转换后的Series和DataFrame,它们不会修改原始数据。如果我们查看reviews的第一行,可以发现它仍然保持着原始的points值。

reviews.head(1)

Pandas提供了许多常见的映射操作作为内置功能。例如,下面是重新计算我们的points列的更快方法:

review_points_mean = reviews.points.mean()
reviews.points - review_points_mean

在这段代码中,我们在左边(Series中的所有值)和右边(平均值)之间执行了一个操作。Pandas会分析这个表达式,并确定我们的意图是将每个值减去平均值。

如果我们在长度相等的Series之间执行这些操作,Pandas也会理解该如何处理。例如,将数据集中的国家和地区信息组合在一起的简单方法是执行以下操作:

reviews.country + " - " + reviews.region_1

这些运算符比map()或apply()更快,因为它们利用了内建在pandas中的加速方式。所有标准的Python运算符(>、<、==等)都可以以这种方式工作。

然而,它们不像map()或apply()那样灵活,map()或apply()可以做更高级的操作,比如应用条件逻辑,而仅仅使用加法和减法是无法做到这一点的。


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

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

相关文章

【力扣】两数之和,暴力枚举 + 哈希表

两数之和原题地址 方法一&#xff1a;暴力枚举 首先&#xff0c;我们需要枚举数组中所有可能的下标对组合&#xff0c;对于 n 个数的数组&#xff0c;从中选两个下标&#xff0c;有 种可能。做法很简单&#xff0c;遍历数组中的所有元素&#xff0c;对于每一个元素&#xff…

【Java EE】----SpringBoot的日志文件

1.SpringBoot使用日志 先得到日志对象通过日志对象提供的方法进行打印 2.打印日志的信息 3.日志级别 作用&#xff1a; 可以筛选出重要的信息不同环境实现不同日志级别的需求 ⽇志的级别分为&#xff1a;&#xff08;1-6级别从低到高&#xff09; trace&#xff1a;微量&#…

【QT+QGIS跨平台编译】之三十一:【FreeXL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、FreeXL介绍二、文件下载三、文件分析四、pro文件五、编译实践一、FreeXL介绍 【FreeXL跨平台编译】:Windows环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台编译】:Linux环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【FreeXL跨平台…

【JS逆向五】逆向模拟某网站的生成的【jsonKey】值 仅供学习

逆向日期&#xff1a;2024.02.07 使用工具&#xff1a;Node.js 加密方法&#xff1a;AES 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 可使用AES进行解密处理&#xff08;直接解密即可&#xff09;&#xff1a;在线AES加解密工具 1、打开…

多路服务器技术如何处理大量并发请求?

在当今的互联网时代&#xff0c;随着用户数量的爆炸性增长和业务规模的扩大&#xff0c;多路服务器技术已成为处理大量并发请求的关键手段。多路服务器技术是一种并行处理技术&#xff0c;它可以通过多个服务器同时处理来自不同用户的请求&#xff0c;从而显著提高系统的整体性…

彩虹系统7.0免授权+精美WAP端模板源码

最低配置环境 PHP7.2 1、上传源码到网站根目录&#xff0c;导入数据库文件 2、修改数据库配置文件&#xff1a;/config.php 3、后台&#xff1a;/admin 账号&#xff1a; 4、前台用户&#xff1a;123456 密码&#xff1a;1234561

【lv5-7】

bootloader 在操作系统运行前的一小段代码&#xff0c;将软硬件环境初始化到一个合适的状态&#xff0c;为操作系统的加载和运行做好准备。 bootloader ->初始化软硬件环境 ->引导加载linux内核 ->给linux内核传参 ->执行用户命令 bootload是启动程序的总称&#x…

2 月 7 日算法练习- 数据结构-树状数组上二分

问题引入 给出三种操作&#xff0c; 0在容器中插入一个数。 1在容器中删除一个数。 2求出容器中大于a的第k大元素。 树状数组的特点就是对点更新&#xff0c;成段求和&#xff0c;而且常数非常小。原始的树状数组只有两种操作&#xff0c;在某点插入一个数和求1到i的所有数的…

合并分支rebase和merge的区别

文章目录 一、前言1.1、master分支1.2、dev分支 二、合并2.1、git merge2.2、git rebase 三、总结四、最后 一、前言 实际开发工作的时候&#xff0c;我们都是在自己的分支开发&#xff0c;然后将自己的分合并到主分支&#xff0c;那合并分支用2种操作&#xff0c;这2种操作有…

使用QT编写一个简单QQ登录界面

widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置窗口标题this->setWindowTitle("QQ");//设置窗口图标this->setWindowIcon(…

TCP的连接和断开详解

目录 1.TCP基础知识 1.1.TCP 头格式 1.2.TCP协议介绍 1.3.UDP协议介绍 1.4.TCP 和 UDP 区别 1.5.TCP 和 UDP 应用场景 1.6.计算机网络相关术语&#xff08;缩写&#xff09; 2.TCP 连接建立&#xff1a;三次握手 2.1.TCP 三次握手过程 2.2.三次握手原理 2.3.异常分析…

Python||数据分析与可视化_使用折线图分析各个城市的P.M.2.5月度差异情况(下)及使用堆叠柱状图对各个城市的PM2.5日均值情况进行数据分析与可视化

目录 1.使用Python折线图对各个城市的P.M.2.5月度差异情况进行数据分析与可视化。 2.使用Python堆叠柱状图对各个城市的PM2.5日均值情况进行数据分析与可视化。 1.使用Python折线图对各个城市的P.M.2.5月度差异情况进行数据分析与可视化。 import numpy as np import pandas a…

Python进程之并行与并发的区别

并行 : 当系统有一个以上CPU时&#xff0c;则进程的操作有可能非并发。当一个CPU执行一个进程时&#xff0c;另一个CPU可以执行另一个进程&#xff0c;两个进程互不抢占CPU资源&#xff0c;可以同时进行&#xff0c;这种方式我们称之为并行。 并发 : 当有多个进程在操作时&…

Optimism Collective 为 Covalent Network(CQT)提供价值 20 万美元的生态系统资助

Covalent Network&#xff08;CQT&#xff09; 是 Web3 生态系统中关键的“数据可用性”层&#xff0c;在与 Optimism Collective 多年的合作中取得了骄人的成果。Covalent Network&#xff08;CQT&#xff09;对于 Optimism 跨链数据的增长产生了直接的影响&#xff0c;而这一…

第三百一十五回

文章目录 1. 概念介绍2. 基本用法3. 补充用法4. 内容总结 我们在上一章回中介绍了"再谈ListView中的分隔线"&#xff0c;本章回中将介绍showMenu的用法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在第一百六十三回中介绍了showMenu相关的内容…

一图窥探RAG技术发展现状

2023年除了大语言模型&#xff0c;听到最多的当属RAG&#xff08;检索增强生成技术了&#xff09;&#xff0c;在实际业务场景落地过程中&#xff0c;由于大模型目前的一定局限和能力现状以及Token限制、训练成本等多种因素的影响下&#xff0c;RAG不得不成为大家选择快速试错、…

学习前端的开始

什么是前端 Web前端&#xff0c;用来直接给用户呈现一个一个的网页一个软件通常情况下是由后端前端完成。 后端通常情况下通过Java,C这样一个编程语言来完成一个相关的逻辑处理&#xff0c;将数据返回给前端。 前端的工作把后端返回给自己的数据进行一系列拼装/组装之后&#…

6、5 门关于 AI 和 ChatGPT 的免费课程,带您从 0-100

5 门关于 AI 和 ChatGPT 的免费课程,带您从 0-100 想在 2024 年免费了解有关 AI 和 ChatGPT 的更多信息吗? 图片由 DALLE 3 提供 活着是多么美好的时光啊。还有什么比现在更适合了解生成式人工智能(尤其是 ChatGPT)等人工智能元素的呢!许多人对这个行业感兴趣,但有些…

RK3588平台开发系列讲解(AI 篇)什么是NPU

文章目录 一、什么是NPU二、什么是RKNPU沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解什么是NPU。 一、什么是NPU 📢什么是 NPU 呢? 在谈这个问题之前,可以先来看看什么是 CPU 和 GPU,CPU 就是中央处理器,中央处理器就好像是人类的大脑,主要负…