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 socket 超时设置 errno 10054
Jul 01 Python
Python selenium文件上传方法汇总
Nov 19 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
Python并行分布式框架Celery详解
Oct 15 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
想学画画?python满足你!
Dec 24 Python
python链表类中获取元素实例方法
Feb 23 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
使用Django框架创建项目
Jun 10 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
Python自动登录QQ的实现示例
2020/08/28 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
优秀员工自荐书
2013/12/19 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
军训自我鉴定200字
2014/02/13 职场文书
护士节活动总结
2014/08/29 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫