Pandas系列(十四)数据转换函数map、apply、applymap以及分组apply
文章目录
- 获取数据
- map
- 方法1:Series.map(dict)
- 方法2:Series.map(function)
- apply
- Series.apply(function)
- DataFrame.apply(function)
- applymap
- 对每个分组应用apply函数
- GroupBy.apply(function)
- 实例1:怎样对数值列按分组的归一化
- 读取数据
- 归一化实现
- 实例2:怎样取每个分组的TOPN数据
- 获取数据
- 获取topN
map
、apply
、applymap
这三个函数的大体区别如下:
- map:只用于
Series
,实现每个值->值的映射; - apply:用于
Series
实现每个值的处理,用于Dataframe
实现某个轴的Series
的处理; - applymap:只能用于
DataFrame
,用于处理该DataFrame
的每个元素;
获取数据
map
map
用于Series
值的转换,比如将某些特征字符转换为另一个特定字符,当然replace
也可以做到这一点。使用map
的话有两种使用方式:map函数传入一个dict:Series.map(dict)
或者Series.map(function)
:
方法1:Series.map(dict)
方法2:Series.map(function)
apply
Series.apply(function)
function
的参数是Series
的每个值
DataFrame.apply(function)
function
的参数是对应轴的Series
总结:apply(function)
用于Series
时,参数是每个值当用于Dataframe
时,参数是对应的轴的Series
。
applymap
applymap
用于DataFrame
所有值的转换,比如将选中的某几列的值转为int
类型:
上述代码所得到的值也可以用于修改原始数据的dataframe
:
对每个分组应用apply函数
pandas
对每个分组处理遵循以下方式:
split
指的是pandas
的groupby
,我们自己实现apply
函数,apply
返回的结果由pandas
进行combine
得到最终结果。
GroupBy.apply(function)
调用GroupBy.apply(function)
时,function
的第一个参数是dataframe
,function
的返回结果,可是dataframe
、series
、单个值,甚至和输入dataframe
完全没关系。
实例1:怎样对数值列按分组的归一化
比如对用户的电影评分归一化,每个用户的评分不同,有的乐观派,评分相对来说都比价高,有的则是悲观派,评分普遍都比较低,因此对用户的评分归一化很有必要:
读取数据
归一化实现
实例2:怎样取每个分组的TOPN数据
获取数据
获取topN
可以看到,grouby
的apply
函数返回的dataframe
,其实和原来的dataframe
其实可以完全不一样。
Pandas系列(十四)数据转换函数map、apply、applymap以及分组apply相关推荐
- Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)
Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存. 目录 ...
- Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
文章目录 一.前言 二.清除git仓库的所有提交记录 本节速览 清除git仓库的所有提交记录 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 ...
- Reflex WMS入门系列十四:在Reflex系统上创建一个Receipt
Reflex WMS入门系列十四:在Reflex系统上创建一个Receipt 很多情况下,使用Reflex WMS系统的企业都会使用某个ERP系统,比如SAP,Oracle EBS等,用以支持企业供应 ...
- css 入场动画_React系列十四 React过渡动画
在开发中,我们想要给一个组件的显示和消失添加某种过渡动画,可以很好的增加用户体验. 当然,我们可以通过原生的CSS来实现这些过渡动画,但是React社区为我们提供了react-transition-g ...
- 【web系列十四】Jsplumb画布使用方法
目录 写在前面 Jsplumb介绍 jsplumb是什么 安装和导入方式 基本概念 主要方法介绍 getInstance() addEndpoint() draggable() 开发建议 jsplum ...
- Hadoop运维记录系列(十四)
周末去了趟外地,受托给某省移动公司(经确认更正,是中国移动位置基地,不是省公司)做了一下Hadoop集群故障分析和性能调优,把一些问题点记录下来. 该系统用于运营商的信令数据,大约每天1T多数据量,2 ...
- Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明
一.使用命令查看 主要有如下命令: 这里注意STATS 指静态的信息,而STATUS 是运行时的信息. 1.1 Monitoring an Extract recovery If Extractabe ...
- 小甲鱼 OllyDbg 教程系列 (十四) : 模态对话框 和 非模态对话框 之 URlegal 和 movgear
小甲鱼 OD 使用教程:https://www.bilibili.com/video/av6889190?p=22 exeScope 下载:https://pan.baidu.com/s/1dSWap ...
- pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...
此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...
- WPF入门教程系列十四——依赖属性(四)
六.依赖属性回调.验证及强制值 我们通过下面的这幅图,简单介绍一下WPF属性系统对依赖属性操作的基本步骤: 借用一个常见的图例,介绍一下WPF属性系统对依赖属性操作的基本步骤: 第一步,确定Base ...
最新文章
- 必读 | 在转行AI之前,先了解下2018年人工智能发展的八大趋势
- 微型计算机2020年6月上,2020年1-6月全国微型计算机设备产量统计分析
- ansible代码发布系统
- 风险项目投资选择与管理
- excel打印预览在哪里_打印小心机:轮页眉页脚的重要性
- 2015-09-14-初级vector
- selenium webdriver 如何添加cookie
- spring mvc拦截器HandlerInterceptor
- 第七章 路由器、交换机及其操作系统介绍
- 谷歌 CEO 发全员公开信:今年将放缓招聘速度
- 怎么关闭苹果手机自动扣费_这些手机功能不关闭,可能会被“自动扣费”
- 马云再出新语录:月入一两百万很高兴,挣一二十亿很难受
- 质量标准、质量策略和质量责任的概念解释
- 如何在C++中调用C程序?(讲的比较清楚)
- 趣谈网络协议学习笔记——TCP
- 芯片(架构)顶会截稿时间和开会时间记录(ISSCC、VLSI、ISCA、HPCA、MICRO、DAC等)
- 期货术语-关于升、贴水,点价,洗船
- 检察院计算机知识试卷,2014河南检察院考试备考:计算机专业课试题练习
- 自学微信小程序开发第六天- TODOS案例
- sigmoid和softmax
热门文章
- mybatis加载属性
- HCIE-Security Day30:IPSec:实验(五)配置基于路由的IPSec PN(采用预共享密钥认证)
- HCIE Security 流量型攻击防范 备考笔记(幕布)
- [C语言数据存储深度解析]-内存数据搞不懂?三千字长文带你走进数据类型及其存储
- HTML-input文本框添加提示文字,填写内容时消失
- “万物控制”是物联网下一个挑战
- MySQL 添加列 修改列 删除列
- 关于纠正 C/C++ 之前在函输内改变 变量的一个错误想法。
- Redis-数据结构与对象
- hdoj1000解题报告