python 用lambda函数替换for循环的方法


Posted in Python onJune 09, 2018

场景如下:

现在有一个dataframe,其中一列为score,值从0-100,

df:

score

98

88

37

68

86

33

现在需要增加一列level,给这些分数分类,90分以上为A,60-90为B,60以下为C。

常用的方法肯定是使用for循环,对每一行进行处理。

import pandas as pd
list = [98,88,37,68,86,33]
df = pd.DataFrame(list, columns=['score']) # convert list to dataframe
df['level'] = '' # add a column
def judgeLevel(df):
 for i in range(len(df)):
  if df.score.ix[i] < 60:
   df.level.ix[i] = 'C'
  elif df.score.ix[i] > 90:
   df.level.ix[i] = 'A'
  else:
   df.level.ix[i] = 'B'
 return df
df = judgeLevel(df)

还有一种方法,是使用python的匿名函数:lambda函数

import pandas as pd 
 
list = [98,88,37,68,86,33] 
 
df = pd.DataFrame(list, columns=['score']) 
 
df['level'] = '' # add a column 
 
def judgeLevel(df): 
 if df['score'] < 60: 
  return 'C' 
 elif df['score'] > 90: 
  return 'A' 
 else: 
  return 'B' 
 
df['level'] = df.apply(lambda r: judgeLevel(r), axis=1)

至于如何取舍,就由各位自行决定了,多学一点总不是坏处,对吧?

以上这篇python 用lambda函数替换for循环的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的简单万年历例子分享
Apr 25 Python
浅谈Python单向链表的实现
Dec 24 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
Python PO设计模式的具体使用
Aug 16 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
django 多数据库及分库实现方式
Apr 01 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
分享Python获取本机IP地址的几种方法
Mar 17 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 #Python
python pandas 如何替换某列的一个值
Jun 09 #Python
pandas 对series和dataframe进行排序的实例
Jun 09 #Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 #Python
python pandas修改列属性的方法详解
Jun 09 #Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 #Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 #Python
You might like
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php通过各种函数判断0和空
2020/07/04 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
常用简易JavaScript函数
2009/04/09 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
Python线性回归实战分析
2018/02/01 Python
python实现聚类算法原理
2018/02/12 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
详解Python3注释知识点
2019/02/19 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
python文件操作的简单方法总结
2019/11/07 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
幼儿园中班下学期评语
2014/04/18 职场文书
带病坚持工作事迹
2014/05/03 职场文书
产品设计开发计划书
2014/05/07 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
先进工作者个人总结
2015/02/15 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书