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 相关文章推荐
Django中对数据查询结果进行排序的方法
Jul 17 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python简单遍历字典及删除元素的方法
Sep 18 Python
Python中如何获取类属性的列表
Dec 26 Python
Python生成密码库功能示例
May 23 Python
Python基础练习之用户登录实现代码分享
Nov 08 Python
Python3实现定时任务的四种方式
Jun 03 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
python 同时读取多个文件的例子
Jul 16 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php数字游戏 计算24算法
2012/06/10 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php生成圆角图片的方法
2015/04/07 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
小程序实现密码输入框
2020/11/16 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
Python2与Python3的区别详解
2020/02/09 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python虚拟环境venv用法详解
2020/05/25 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
会议开场欢迎词
2014/01/15 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
旅游安全协议书
2014/04/21 职场文书
增值税发票丢失证明
2015/06/19 职场文书
工程主管竞聘书
2015/09/15 职场文书
大队委员竞选稿
2015/11/20 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python