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中设置变量作为默认值时容易遇到的错误
Apr 03 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
Python爬虫工程师面试问题总结
Mar 22 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
python 判断文件还是文件夹的简单实例
Jun 10 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
python定时任务 sched模块用法实例
Nov 04 Python
python redis 批量设置过期key过程解析
Nov 26 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
PHP捕获Fatal error错误的方法
2014/06/11 PHP
php数组去除空值函数分享
2015/02/02 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
python统计cpu利用率的方法
2015/06/02 Python
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
np.dot()函数的用法详解
2020/01/17 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
python函数超时自动退出的实操方法
2020/12/28 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
运动会稿件300字
2014/02/14 职场文书
《燕子》教学反思
2014/02/18 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电