python中多个条件求值怎么算_python-根据多个条件计算列

我正在阅读有关基于行为的新计算的博客,其中插入了新的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

标签:python,pandas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值