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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
python文件写入实例分析
Apr 08 Python
Python中操作文件之write()方法的使用教程
May 25 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
python opencv实现运动检测
Jul 10 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
python pytest进阶之fixture详解
Jun 27 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
js面向对象的写法
2016/02/19 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
Python数据结构之单链表详解
2017/09/12 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
经典大学生求职信范文
2014/01/06 职场文书
保险内勤岗位职责
2014/04/05 职场文书
作风年建设汇报材料
2014/08/14 职场文书
暑期社会实践证明书
2014/11/17 职场文书
《绝招》教学反思
2016/02/20 职场文书
Python如何配置环境变量详解
2021/05/18 Python
2022年四月新番
2022/03/15 日漫