python——⽤lambda函数替换for循环场景如下:
现在有⼀个dataframe,其中⼀列为score,值从0-100,
df:
score
98
88
37
68
86
33
现在需要增加⼀列level,给这些分数分类,90分以上为A,60-90为B,60以下为C。
常⽤的⽅法肯定是使⽤for循环,对每⼀⾏进⾏处理。
[python]
1. import pandas as pd
2.
3. list = [98,88,37,68,86,33]
4.
5. df = pd.DataFrame(list, columns=['score']) # convert list to dataframe
6.
7. df['level'] = '' # add a column
8.
9. def judgeLevel(df):
10. for i in range(len(df)):
11. if df.score.ix[i] < 60:
12. df.level.ix[i] = 'C'
13. elif df.score.ix[i] > 90:
14. df.level.ix[i] = 'A'
15. else:
16. df.level.ix[i] = 'B'
17. return df
18.
19. df = judgeLevel(df)
python中lambda怎么使用还有⼀种⽅法,是使⽤python的匿名函数:lambda函数
[python]
1. import pandas as pd
2.
3. list = [98,88,37,68,86,33]
4.
5. df = pd.DataFrame(list, columns=['score'])
6.
7. df['level'] = '' # add a column
8.
9. def judgeLevel(df):
10. if df['score'] < 60:
11. return 'C'
12. elif df['score'] > 90:
13. return 'A'
14. else:
15. return 'B'
16.
17. df['level'] = df.apply(lambda r: judgeLevel(r), axis=1)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论