如何在Python的IF条件下使用isin函数
我试图在函数的if条件下使用isin函数,但它给了我一个错误 我有函数如何在Python的IF条件下使用isin函数,python,pandas,dataframe,Python,Pandas,Dataframe,我试图在函数的if条件下使用isin函数,但它给了我一个错误 我有函数f,我正在从数据框df传递列A,我的if条件应该检查('IND','USA')中是否有A,然后返回访问过的国家或其他未访问过的国家 def f(A) if A.isin(['IND','USA']): return Visited_countries else: return not_visited_countries df['D']=df.apply(lambda x: f(x.A,axis=1)
f
,我正在从数据框df
传递列A
,我的if条件应该检查('IND','USA')
中是否有A,然后返回访问过的国家或其他未访问过的国家
def f(A)
if A.isin(['IND','USA']):
return Visited_countries
else:
return not_visited_countries
df['D']=df.apply(lambda x: f(x.A,axis=1)
当我执行此代码时,它给出以下错误
AttributeError: ("'str' object has no attribute 'isin'", 'occurred at index 0')
请告诉我这里缺少什么。您需要使用系列,而不是所有DF,例如DF中的A列,因此:
如果DF.A.isin(['IND','USA']).any():
您可能需要这个
df.loc[df.A.isin(['IND','USA']),'D'] = 'Visited_countries'
df.loc[~df.A.isin(['IND','USA']),'D'] = 'Not_visited_countries'
或者你想使用if条件,我想你可以使用'in'关键字。这个怎么样
df['D'] = df.A.apply(lambda x : 'Visited_countries' if x in ['IND','USA'] else 'Not_visited_countries')
python中是否有
isin()
函数?!我从来没有听说过。现在,我学到了一个新东西。不管怎样,它就像df['A'].isin(['IND','USA'])
。我以前使用过这个函数,但是,正如我使用其他if和elif以及else条件一样,我正在使用这个函数。这里我给出了示例代码,因此它可以工作,但在我的实时代码中,我必须使用多个if和else(嵌套)条件,因此它会变得复杂。这就是我声明函数的原因我已经在Lambda中传递了DF,这就是为什么我在没有DF的情况下使用了a.isin,但仍然尝试了您的代码现在它给了我一个不同的错误“ValueError:('序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all(),'发生在索引0处')”