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中类型关系和继承关系实例详解
May 25 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
python将一组数分成每3个一组的实例
Nov 14 Python
python opencv摄像头的简单应用
Jun 06 Python
Python3实现飞机大战游戏
Apr 24 Python
PyQt5实现登录页面
May 30 Python
python简单利用字典破解zip文件口令
Sep 07 Python
matplotlib 三维图表绘制方法简介
Sep 20 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
总结几个非常实用的Python库
Jun 26 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP引用符&的用法详细解析
2013/08/22 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
vue实现分页组件
2020/06/16 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python实现注册登录系统
2017/08/08 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
如何写好优秀的创业计划书
2014/01/30 职场文书
保护环境建议书300字
2014/05/13 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
项目建议书
2015/02/04 职场文书
公司人事任命通知
2015/04/20 职场文书
演讲开场白台词大全
2015/05/29 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
Python进程间的通信之语法学习
2022/04/11 Python