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 相关文章推荐
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
python正则中最短匹配实现代码
Jan 16 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
python list多级排序知识点总结
Oct 23 Python
python将图片转base64,实现前端显示
Jan 09 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
DRF使用simple JWT身份验证的实现
Jan 14 Python
Python网络编程之ZeroMQ知识总结
Apr 25 Python
超级详细实用的pycharm常用快捷键
May 12 Python
python 如何用terminal输入参数
May 25 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
php获得当前的脚本网址
2007/12/10 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
自我评价200字分享
2013/12/17 职场文书
迟到早退检讨书
2014/02/10 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
经典团队口号
2014/06/06 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
宣传稿格式范文
2015/07/23 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
python 制作一个gui界面的翻译工具
2021/05/14 Python
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
CentOS安装Nginx并部署vue
2022/04/12 Servers