pandas中关于apply+lambda的应用


Posted in Python onFebruary 28, 2022

apply(func [, args [, kwargs ]]) 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数。args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,任 何参数都不会被传递,kwargs是一个包含关键字参数的字典。简单说apply()的返回值就是func()的返回值,apply()的元素参数是有序的,元素的顺序必须和func()形式参数的顺序一致,与map的区别是前者针对column,后者针对元素

lambda是匿名函数,即不再使用def的形式,可以简化脚本,使结构不冗余何简洁

a =  lambda x  : x + 1 
a(10)
 
11

两者结合可以做很多很多事情,比如split在series里很多功能不可用,而index就可以做

比如有一串数据如下,要切分为总数,正确数,正确率,则可这样做

96%(1368608/1412722)
97%(1389916/1427922)
97%(1338695/1373803)
96%(1691941/1745196)
95%(1878802/1971608)
97%(944218/968845)
96%(1294939/1336576)

import pandas as pd
#先生成一个dataframe
d = {"col1" : ["96%(1368608/1412722)",
"97%(1389916/1427922)",
"97%(1338695/1373803)",
"96%(1691941/1745196)",
"95%(1878802/1971608)",
"97%(944218/968845)",
"96%(1294939/1336576)"]}
df1 = pd.DataFrame(d)
 
#切分原文中识别率总数,采用apply + 匿名函数
#lambda 函数的意思是选取x的序列值 ,比如 x[6:9]
#index函数的意思是把当前字符位置转变为所在位置的位数
#-1是最后一位
df1['正确数'] = df1.iloc[:,0].apply(lambda x : x[x.index('(') + 1 : x.index('/')])
df1['总数'] = df1.iloc[:,0].apply(lambda x : x[x.index('/') + 1 : -1])
df1['正确率'] = df1.iloc[:,0].apply(lambda x : x[:x.index('(')])
df1

pandas中关于apply+lambda的应用

示例2

由一组dataframe数据,包括有数值型的三列气象要素,由这三列通过公式计算人体舒适指数

pandas中关于apply+lambda的应用

应用到的人体舒适指数计算公式:

pandas中关于apply+lambda的应用

import pandas as pd
import numpy as np
import math
path='D:\\data\\57582.csv'  #文件路径
data=pd.read_csv(path,index_col=0,encoding='gbk')  #读取数据有中文时用gbk解码
#定义舒适指数公式函数,结果保留1位小数
def get_CHB(T,RH,S):
    return round(1.8*T-0.55*(1.8*T-26)*(1-RH/100)-3.2*math.sqrt(S)+32,1)
#增加一列CHB并计算数据后赋值
data['舒适指数']=data.apply(lambda x:get_CHB(x['平均气温'],x['平均相对湿度'],x['2M风速']),axis=1)
#打印结果
print(data)
#保存结果
data.to_csv('D:\\CHB.csv',encoding='gbk')

代码中使用了apply和lambda的组合,传入的参数x为整个data数据,在函数中引入的参数则是x[‘平均气温’],x[‘平均相对湿度’],x[‘2M风速’],与自定义的函数get_CHB对应。最后需使用axis=1来指定是对列进行运算。

结果如图所示:

pandas中关于apply+lambda的应用

 到此这篇关于pandas中关于apply+lambda的应用的文章就介绍到这了,更多相关pandas apply+lambda内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中的计时器timeit的使用方法
Oct 20 Python
在python中以相同顺序shuffle两个list的方法
Dec 13 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
Python按钮的响应事件详解
Mar 04 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 Python
python中count函数知识点浅析
Dec 17 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
JS回调函数深入理解
2019/10/16 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python实现电子产品商店
2019/02/26 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
八年级历史教学反思
2014/01/10 职场文书
校运会入场式解说词
2014/02/10 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
汉字听写大会观后感
2015/06/12 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
Kubernetes控制节点的部署
2022/04/01 Servers
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript