Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python的IF条件下使用isin函数_Python_Pandas_Dataframe - Fatal编程技术网

如何在Python的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)

我试图在函数的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)
当我执行此代码时,它给出以下错误

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处')”