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

yipeiwu_com6年前Python基础

场景如下:

现在有一个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使用及设置方法

浅谈pycharm使用及设置方法

一、Pycharm 是什么? PyCharm是一种PythonIDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。 二、pycharm 的安装 1.下载 :&n...

Python实现 版本号对比功能的实例代码

下面先给大家介绍python实现版本号对比功能,具体内容如下所示: 相同位置版本号大小比较: def abc(str1, str2): if str1 == "" or str2...

Python函数式编程指南(四):生成器详解

4. 生成器(generator) 4.1. 生成器简介 首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Python的for循...

Python 调用DLL操作抄表机

# -*- coding: GBK -*- from ctypes import * dll = windll.LoadLibrary('JBA188.dll') a = dll.tes...

Python使用matplotlib和pandas实现的画图操作【经典示例】

Python使用matplotlib和pandas实现的画图操作【经典示例】

本文实例讲述了Python使用matplotlib和pandas实现的画图操作。分享给大家供大家参考,具体如下: 画图在工作再所难免,尤其在做数据探索时候,下面总结了一些关于python...