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 25 Python
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
python魔法方法-自定义序列详解
Jul 21 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
python3学习之Splash的安装与实例教程
Jul 09 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
python实现的登录和操作开心网脚本分享
2014/07/09 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
阿德的梦教学反思
2014/02/06 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
产品发布会策划方案
2014/05/12 职场文书
公司建议书怎么写
2014/05/15 职场文书
启动仪式策划方案
2014/06/14 职场文书
交通安全责任书范本
2014/07/24 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫