как использовать функцию isin в условии IF в Python - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь использовать функцию isin в условии if внутри функции, но это дает мне ошибку

У меня есть функция f, и я передаю столбцы A из фрейма данных df , и мое условие if должно проверять, есть ли A в ('IND','USA'), а затем возвращать посещенные_ страны, иначе not_visited_countries

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

Пожалуйста, дайте мне знать что мне здесь не хватает.

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Вы можете захотеть это

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')
1 голос
/ 07 августа 2020

Вам нужно использовать Series, а не все DF, например, столбец A в DF, поэтому: if DF.A.isin(['IND','USA']).any():

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...