Pandas三大利器-map、apply、applymap

pandas数据处理三大重要函数之apply、map与applymap pandas三大数据处理函数apply、map和applymap及numpy中的numpy.where函数 阅读详情

50eed83e34f27e4791ae6db0e74045df.png

实际工作中,我们在利用 pandas进行数据处理的时候,经常会对数据框中的单行、多行(列也适用)甚至是整个数据进行某种相同方式的处理,比如将数据中的 sex字段将 男替换成1,女替换成0。

在这个时候,很容易想到的是 for循环。用 for循环是一种很简单、直接的方式,但是运行效率很低。本文中介绍了 pandas中的三大利器: map、apply、applymap 来解决上述同样的需求。

  • map

  • apply

  • applymap

—  01 —

模拟数据

通过一个模拟的数据来说明3个函数的使用,在这个例子中学会了如何生成各种模拟数据。数据如下:

import pandas as pd
import numpy as np
boolean = [True, False]
gender = ["男","女"]
color = ["white","black","red"]
# 好好学习如何生成模拟数据:非常棒的例子
# 学会使用random模块中的randint方法
df = pd.DataFrame({"height":np.random.randint(160,190,100),
                     "weight":np.random.randint(60,90,100),
                     "smoker":[boolean[x] for x in np.random.randint(0,2,100)],
                     "gender":[gender[x] for x in np.random.randint(0,2,100)],
                     "age":np.random.randint(20,60,100),
                     "color":[color[x] for x in np.random.randint(0,len(color),100)]
                    })
df.head()

e762c33640690dbae97020ca73d7d50b.png

—  02 —

map

demo

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map(function, iterable)

af9be52ad6a8882e3258d1c34c33eecc.png

实际数据

将gender中男变成1,女变成0

# 方式1:通过字典映射实现
dic = {"男":1, "女":0}  # 通过字典映射
df1 = df.copy()   # 副本,不破坏原来的数据df
df1["gender"] = df1["gender"].map(dic)
df1
# 方式2:通过函数实现
def map_gender(x):
    gender = 1 if x == "男" else 0
    return gender
df2 = df.copy()
# 将df["gender"]这个S型数据中的每个数值传进去
df2["gender"] = df2["gender"].map(map_gender)
df2

332b0f0bbfbecdcff974199a3207a25f.png

—  03 —

apply

apply方法的作用原理和 map方法类似,区别在于 apply能够传入功能更为复杂的函数,可以说 apply是 map的高级版

pandas 的 apply() 函数可以作用于 Series 或者整个 DataFrame,功能也是自动遍历整个 Series 或者 DataFrame, 对每一个元素运行指定的函数。

在 DataFrame对象的大多数方法中,都会有 axis这个参数,它控制了你指定的操作是沿着0轴还是1轴进行。 axis=0代表操作对 列columns进行, axis=1代表操作对 行row进行

demo

  1. 上面的数据中将age字段的值都减去3,即加上-3

def apply_age(x,bias):
    return x + bias
df4 = df.copy()
# df4["age"]当做第一个值传给apply_age函数,args是第二个参数
df4["age"] = df4["age"].apply(apply_age,args=(-3,))

c5a02dcfa2e07777c5d4c085abcc5497.png

  1. 计算BMI指数

# 实现计算BMI指数:体重/身高的平方(kg/m^2)
def BMI(x):
    weight = x["weight"]
    height = x["height"] / 100
    BMI = weight / (height **2)
    return BMI
df5 = df.copy()
df5["BMI"] = df5.apply(BMI,axis=1)  # df5现在就相当于BMI函数中的参数x;axis=1表示在列上操作
df5

33bf93f628cec0fa9195c44ef2d3dfa8.png

DataFrame型数据的 apply操作总结:

  1. 当 axis=0时,对 每列columns执行指定函数;当 axis=1时,对 每行row执行指定函数。

  2. 无论 axis=0还是 axis=1,其传入指定函数的默认形式均为 Series,可以通过设置 raw=True传入 numpy数组。

  3. 对每个Series执行结果后,会将结果整合在一起返回(若想有返回值,定义函数时需要 return相应的值)

apply实现需求

通过apply方法实现上面的性别转换需求。apply方法中传进来的第一个参数一定是函数

de6f88b50250583f647e928846135787.png

—  04 —

applymap

DF数据加1

applymap函数用于对DF型数据中的每个元素执行相同的函数操作,比如下面的加1:

cfcea73c4588d598fe32fb7672942035.png

保留2位有效数字

5f82b744caa53a31baf5136e9440fdb3.png

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看200个Python案例!

处理不平衡数据的五种方法 大家好,我是小寒。 原文链接 你是否曾经遇到过这样的问题:你的数据集中的正类样本非常小,以至于模型无法学习? 「在这种情况下,仅通过预测多数类就可以获得相当高的准确度,但无法捕获少数类。」 这样的数据集很常见,被称为「不平衡数据集。」 不平衡数据集是分类问题的一种特殊情况,其中类之间分布不均匀。通常,它们由两个类组成:多数(负)类和少数(正)类。 在不同的领域都会有这样的数据集,例如: 「金融」:欺诈检测数据集的欺诈率通常约为 1%-2%「广告服务」:点击预测数据集的点击率也不高。「运输」/「航空 阅读详情

相关推荐

numpy与pandas中apply与applymap与map三者的区别

本文主要介绍了numpy与pandas中apply与applymap与map三者的区别,希望能对新手有所帮助。 文章目录 1. Series 2. DataFrame 3. apply/map/applymap传参

weixin_43178406的博客 1万+

pandas之apply函数简介及用法详解

1.基本信息 ​ Pandas 的 apply() 方法是用来调用一个函数(Python method),让此函数对数据对象进行批量处 理。 ​ Pandas 的很多对象都可以使用 apply() 来调用函数,如 Dataframe、Series、分组对象、各种时间序列等。 2.语法结构 ​ apply() 使用时,通常放入一个 lambda 函数表达式、或一个函数作为操作运算,官方上给出DataFrame的 apply() 用法: DataFrame.apply(self, func, axis=0, r

weixin_44852067的博客 9万+

lidar360 V8.0 & lidar360MLS V8.0雷达点云数据处理软件

机载林业 — 基于机载激光雷达点云数据提取一系列森林结构参数(如:高度分位数、叶面积指数、郁闭度等),分割单木并提取单木参数(包括树的位置、树高、胸径、枝下高、冠幅等属性),利用软件的多种回归分析功能可以结合地面调查数据反演森林生物量、蓄积量等功能参数。还可以生成等高线、山体阴影、坡度、坡向、粗糙度等多种产品。分类 — LiDAR360提供多种分类功能,包括地面点分类、模型关键点分类、选择区域地面点分类、机器学习模型分类(可高效地分离建筑、植被、路灯等通用类别)、深度学习模型分类、自定义深度学习分类等。

2403_83796253的博客 5160

Pandas教程 | 数据处理三板斧——map、apply、applymap详解

Pandas map、apply、applymap

chenzhjlf的专栏 5552

高通平台Android稳定性调试笔记:手把手教你用T32、Crash Utility分析Kernel Panic与RAM Dump

本文详细介绍了高通平台Android内核崩溃的分析方法,包括使用T32 Simulator和Crash Utility工具链解析Kernel Panic与RAM Dump。从环境配置、dump文件预处理到高级调试技巧,手把手教你如何定位和解决Android系统崩溃问题,特别适用于MSM/SA8155平台的开发者。

weixin_42543046的博客 529

手眼标定(EyeToHand)推导

Base为基坐标系(B),工具末端坐标系(T),标定板为Mark坐标系(M),相机坐标系(C)对于每两个姿态都存在上式,组成一个AX=XB的矩阵方程,X为。此时转换成AX=0的问题,单纯用SVD求奇异解便可得到。相机坐标系到Base基坐标系下的转换关系。已知标定板与机械臂末端的相对位置固定不变,,即。带入(2)式求,至此求解出需要的手眼矩阵。在眼在手外的时候,其实是要求解。

stevenreally6的博客 1144

pandas 三大利器 map, apply, applymap的通俗理解

前言 目前,处理数据的软件包括:R和python,还有一些其他的软件。当然,我也是经常在R和python之间切换使用。一般来说,但我进行数据的统计分析时候,我首选的是R程序,因为确实包含了太多的统计函数,还有需要贡献者。随着,python的粉丝的暴涨,越来越多的编程都或多或少使用了python,在编程语言的排行榜中,python也稳居前3。 在python的使用中,numpy,pandas是数据处理的利器。 接下来,我将阐述pandas常用的批量处理数据的三个函数,它能够有效的避免低效率(反正大家都这么说)

XIAOFEI@IDO 1347

【RK3399】Android平台增加一款声卡设备(ES7210+ES8156),进行录音/播放测试。

文章目录前言一、开发环境二、概述三、硬件介绍1、ES72102、ES81563、数字麦克风阵列4、音频示意图四、下载SDK五、编译、烧写1、u-boot2、kernel3、Android SDK4、烧写分区5、烧写固件六、声卡驱动1、添加codec代码2、修改Kconfig3、修改Makefile4、修改rockchip_defconfig5、修改DTS七、声卡调试1、查看声卡注册信息2、使用tinycap/tinyplay录音和放音3、使用示波器观测八、修改HAL层1、修改默认capture/playba

rentong123的博客 2万+

【值得收藏】Pandas 三大利器:map、apply、applymap

实际工作中,我们在利用 pandas进行数据处理的时候,经常会对数据框中的单行、多行(列也适用)甚至是整个数据进行某种相同方式的处理,比如将数据中的 sex字段将 男替换成1,女替换成0。在这个时候,很容易想到的是 for循环。用 for循环是一种很简单、直接的方式,但是运行效率很低。本文中介绍了 pandas中的三大利器: map、apply、applymap 来解决上述同样的需求。mapapplyapplymap—&nbsp

Python学习与数据挖掘 422

S905L3B机顶盒刷Armbian:从安卓Root到eMMC全攻略

在嵌入式开发与轻量级服务器搭建中,ARM架构设备因其低功耗和高性价比备受关注。晶晨S905L3B作为运营商机顶盒的主流芯片,通过刷写Armbian系统可将其改造为ARM小服务器。其原理是利用Amlogic芯片的uboot引导机制,将Linux系统写入eMMC存储,从而脱离原厂安卓限制。这一方案的技术价值在于以极低成本实现Docker容器、下载机、轻量数据库等服务的部署,应用场景涵盖家庭网络广告过滤、智能家居控制、复古游戏机等。本文以CM311-1S为例,详细拆解从安卓9 Root到Armbian写入eMMC

weixin_31476015的博客 344

burpsuite抓取ios数据包

1:首先在burpsuite中设置 添加proxy listeners 2:电脑开热点,手机连接,把代理设为电脑的ip和代理的端口 3:在Safari浏览器中打开网址http://burp下载证书 4:打开设置->通用->描述文件与设备管理 5:设置->通用->关于本机->证书信任设置 之后就可以正常抓包了 ...

weixin_45682070的博客 2068

Pandas三大利器-map、apply、applymap,腾讯Python开发面试经验

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

1144

Livox MID-360与FAST-LIO2实战:从驱动部署到参数调优的完整指南

激光雷达惯性里程计(LIO)是机器人定位与建图(SLAM)领域的核心技术,它通过紧耦合融合激光雷达点云与惯性测量单元(IMU)数据,实现高精度、低漂移的位姿估计。其核心原理在于利用IMU的高频数据预测运动,并用激光雷达的精确测距信息进行校正与优化,从而在快速运动或特征缺失场景下保持鲁棒性。这项技术的工程价值在于为自动驾驶、移动机器人及三维重建提供了可靠的前端里程计解决方案。针对Livox MID-360固态雷达与FAST-LIO2这一热门组合,其应用场景广泛覆盖了室内外导航与地图构建。本文聚焦于**驱动部署

weixin_29997523的博客 448

Pandas 数据处理三大利器 apply、map、applymap

应用在DataFrame的行或列中,也可以应用到单独一个Series的每个元素中。

qq_42375376的博客 1520

OmniDrive(2):环境搭建

项目中使用的是全量的数据集(full dataset v1.0), 数据量比较大,训练验证(trainval) + test 总计200多G的数据,单独一个个下载会比较慢。参数,否则安装的时候会自动卸载已安装好的torch,重新安装最新版本的torch,这是不允许的。在cuDNN官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,== 博文中详细介绍了完整的cuda和cudnn的安装过程==分析: 这是因为yapf 安装的版本不对,需要安装特定的版本。出现训练的loss变化,就说明可以正常训练了。

@bangbang的博客 625

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

pandas apply函数_pandas3大利器详解map/apply/applymap

Pandas三大利器-map、apply、applymap我们在利用pandas进行数据处理的时候,经常会对数据框中的单行、多行(列也适用)甚至是整个数据进行某种相同方式的处理,比如将数据中的sex字段中男替换成1,女替换成0。自己最近处理数据的时候就遇到不少类似的需求。在这种情况下用for循环是一种很简单、直接的方式,但是运行效率很低。本文中介绍了pandas中的三大利器:map、ap...

weixin_39517859的博客 197

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

pandas中apply与map的异同

◆◆◆ ◆◆前言pandas作为数据处理与分析的利器,它的江湖地位非同小可。在我们数据处理与分析过程中,有时候需要对某一列的每一个值都进行处理,这时候推荐大家使用apply或者m...

小詹学python的博客 640

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Pandas 实现循环的三大利器

1. 概述 在实际工作中,基于 pandas进行数据处理的时候,经常会对数据框中的单行、多行(列也适用)甚至是整个数据进行某种相同方式的处理,比如将数据中的 sex字段将男替换成1,女替换成0。 其中,for循环是一种简单、直接的方式,但运行效率很低。本文介绍了 pandas中的三大利器: map、apply、applymap。 2. 数据模拟 import pandas as pd import numpy as np boolean = [True, False] gender = ["Male",

XIAOFEI@IDO 2650

修改map的值_pandas中apply与map的异同

◆◆◆ ◆◆前言pandas作为数据处理与分析的利器,它的江湖地位非同小可。在我们数据处理与分析过程中,有时候需要对某一列的每一个值都进行处理,这时候推荐大家使用apply或者map。但是,二者又有啥区别呢?一起来通过几个小例子学习一下吧。APPLY一、直接使用内置函数或者numpy函数# 数据展示>>> dfOut[1]: 姓名 年龄0 alan ...

weixin_31978735的博客 127

彻底告别循环嵌套:用pandas的3大函数优雅处理数据转换

你是否还在为处理Excel表格中的复杂数据转换而编写多层循环?是否因代码嵌套过多导致调试困难、运行缓慢?本文将带你掌握pandas中的apply、map和applymap三大函数,用简洁优雅的方式替代繁琐的循环操作,让数据转换效率提升10倍!读完本文后,你将能够: - 准确区分apply、map和applymap的适用场景 - 熟练使用这三个函数处理各种数据转换任务 - 通过实例对比循环与向量化操...

gitblog_00254的博客 525

pandas将字符串转换成时间_数据处理利器 pandas 实例详解 (下)

1.资料转换1.套用向量化计算(例子依然使用我们采集的房天下的数据) 计算新价格df['总价']*1000使用 Numpy计算新的价格np.sqrt()代表开根号importnumpyasnpnp.sqrt(df['总价'])合并两字符串df['朝向']+df['户型']将新计算的均价存入DataFramedf['均价']=df['总价']*1000/df['...

weixin_29556943的博客 917

数据分析利器Python——Pandas(二、运算、函数、文件、统计方法)

文章目录一、运算与对齐二、函数应用map()函数apply()函数和applymap()函数三、文件读写操作四、排序操作4.1、按照索引排序4.2、按值排序五、数据清洗5.1、操作目标5.2、处理缺失数据5.3、处理重复数据5.4、替换数据六、常用统计方法 一、运算与对齐 pandas可对不同索引的对象进行运算,索引与数据的对应关系仍然存在于数组运算的结果中。没对齐的位置补NaN Series和Series、DataFrame和DataFrame均可以进行运算,原则是只有行索引和列索引相同的地方才可进行运算

风暖暖的博客 1560

Pandas DataFrame遍历:从iterrows到向量化操作的性能优化指南

在数据处理领域,高效遍历与操作结构化数据集是核心技能。其原理在于理解内存布局与计算范式,向量化操作通过底层优化实现批量计算,相比逐行循环能带来数百倍的性能提升。这一技术价值在于显著加速数据清洗、特征工程与分析流程。在数据科学、金融分析和机器学习等应用场景中,处理大规模表格数据时,选择合适的遍历方法至关重要。本文将围绕DataFrame遍历,对比iterrows、itertuples与向量化等方法的性能差异,并探讨在数据清洗和复杂计算等场景下的最佳实践,帮助开发者编写更高效的pandas代码。

weixin_30918633的博客 360
上一篇: 攻略指南:参加英伟达GTC全球盛会,在线面基黄仁勋,吴恩达,还有奖品拿!...
下一篇: 用 Python 实现导弹自动追踪,超燃!
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值