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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
浅析Python中的序列化存储的方法
Apr 28 Python
Python线程下使用锁的技巧分享
Sep 13 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
Python中正则表达式的用法总结
Feb 22 Python
Python time库基本使用方法分析
Dec 13 Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 Python
Python魔术方法专题
Jun 19 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
Python批量将csv文件转化成xml文件的实例
May 10 Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
You might like
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP经典的给图片加水印程序
2006/12/06 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
网页常用特效代码整理
2006/06/23 Javascript
取得父标签
2006/11/14 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
Bootstrap插件全集
2016/07/18 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
JS判断数组那点事
2017/10/10 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
使用python加密自己的密码
2015/08/04 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
Django model序列化为json的方法示例
2018/10/16 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
仓库管理专业个人自我评价范文
2013/11/11 职场文书
如何写自我鉴定
2014/03/19 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
党员评议自我评价
2015/03/03 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
浅谈PHP7中的一些小技巧
2021/05/29 PHP