python lamda函数_python 用lambda函数替换for循环的方法
場(chǎng)景如下:
現(xiàn)在有一個(gè)dataframe,其中一列為score,值從0-100,
df:
score
98
88
37
68
86
33
現(xiàn)在需要增加一列l(wèi)evel,給這些分?jǐn)?shù)分類,90分以上為A,60-90為B,60以下為C。
常用的方法肯定是使用for循環(huán),對(duì)每一行進(jìn)行處理。
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的匿名函數(shù):lambda函數(shù)
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)
至于如何取舍,就由各位自行決定了,多學(xué)一點(diǎn)總不是壞處,對(duì)吧?
以上這篇python 用lambda函數(shù)替換for循環(huán)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。
本文標(biāo)題: python 用lambda函數(shù)替換for循環(huán)的方法
本文地址: http://www.cppcns.com/jiaoben/python/229815.html
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的python lamda函数_python 用lambda函数替换for循环的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bp神经网络_BP神经网络的原理介绍
- 下一篇: python计算n到n+100之间所有奇