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 相关文章推荐
使用Django Form解决表单数据无法动态刷新的两种方法
Jul 14 Python
Python判断两个对象相等的原理
Dec 12 Python
Python实现的直接插入排序算法示例
Apr 29 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 Python
Python3.9.1中使用match方法详解
Feb 08 Python
python开发实时可视化仪表盘的示例
May 07 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
php实现分页工具类分享
2014/01/09 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
Python切片工具pillow用法示例
2018/03/30 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
python仿抖音表白神器
2019/04/08 Python
利用python实现周期财务统计可视化
2019/08/25 Python
使用python实现飞机大战游戏
2020/03/23 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
.NET常见笔试题集
2012/12/01 面试题
大三毕业自我鉴定
2014/01/15 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
开除通知书范本
2015/04/25 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书