python lamda函数_python 用lambda函数替换for循环的方法
場景如下:
現在有一個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 用lambda函數替換for循環的方法
本文地址: http://www.cppcns.com/jiaoben/python/229815.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的python lamda函数_python 用lambda函数替换for循环的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bp神经网络_BP神经网络的原理介绍
- 下一篇: python计算n到n+100之间所有奇