我正在阅读有关基于行为的新计算的博客,其中插入了新的col“ category”.
data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'age': [42, 52, 36, 24, 73],
'preTestscore': [4, 24, 31, 2, 3],
'postTestscore': [25, 94, 57, 62, 70]}
df = pd.DataFrame(data, columns = ['name', 'age', 'preTestscore', 'postTestscore'])
df['category'] = np.where(df['age']>=50, 'yes', 'no')
如何将其扩展到更多的条件,例如
如果年龄小于20岁,那就小子;
如果在21至40岁之间,则年轻;
如果高于40,则年龄较大
解决方法:
对于多种情况,您可以仅使用numpy.select而不是numpy.where
import numpy as np
cond = [df['age'] < 20, df['age'].between(20, 39), df['age'] >= 40]
choice = ['kid', 'young', 'old']
df['category'] = np.select(cond, choice)
# name age preTestscore postTestscore category
#0 Jason 42 4 25 old
#1 Molly 52 24 94 old
#2 Tina 36 31 57 young
#3 Jake 24 2 62 young
#4 Amy 73 3 70 old
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。