python pandas series想赋予新的值_Python Pandas-如果项目在列表中,则为新列的值

I want to create a new column in pandas dataframe. The first column contains names of countries. The list contains countries I am interested in (eg. in EU). The new colum should indicate if country from dataframe is in the list or not.

Below is the shortened version of the code:

import pandas as pd

import numpy as np

EU = ["Austria","Belgium","Germany"]

df1 = pd.DataFrame(data={"Country":["USA","Germany","Russia","Poland"], "Capital":["Washington","Berlin","Moscow","Warsaw"]})

df1["EU"] = np.where(df1["Country"] in EU, "EU", "Other")

The error I get is:

ValueError: The truth value of a Series is ambigous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

I don't know what the problem is and how to solve it. What am I missing?

I am using Anaconda on Windows.

Thanks

解决方案

Use isin for check membership:

df1["EU"] = np.where(df1["Country"].isin(EU), "EU", "Other")

print (df1)

Capital Country EU

0 Washington USA Other

1 Berlin Germany EU

2 Moscow Russia Other

3 Warsaw Poland EU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值