python中添加条件_如何向pandas d添加条件列

您可以为每个大陆构造列表并apply函数:In [35]:

asia = ['Thailand','Indonesia','China','Japan','Bangladesh']

south_america = ['Boliva' , 'Guatemala' , 'Venezuela' , 'Mexico' , 'Argentinia']

africa = [ 'Guinea Bissau' , 'Egypt' , 'Zaire' , 'Kenya']

def find_continent(x):

if x in asia:

return 'Asia'

elif x in south_america:

return 'South America'

elif x in africa:

return 'Africa'

else:

return 'Unknown'

df['Continent'] = df['Origin'].apply(find_continent)

df

Out[35]:

Origin X Continent

0 Guatemala x South America

1 China x Asia

2 Kenya x Africa

3 Venezuela x South America

4 Bangladesh x Asia

或者,如果df要大得多,那么可以使用isin进行连续调用,并使用loc屏蔽行:

^{pr2}$

至于为什么你的尝试没有成功:if x['Origin']== 'Thailand' or 'Indonesia' or 'China' or 'Japan' or 'Bangladesh'

这将返回True,因为or 'Indonesia'总是True,所以所有行都设置为Asia。在

你应该改成这样:if x['Origin'] in ('Thailand' , 'Indonesia' , 'China' , 'Japan' , 'Bangladesh'):

使用np.where可以,但是您没有屏蔽行,所以您不断地覆盖这些行,所以只有最后一个操作继续存在。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值