Создать новое значение столбца на основе содержимого другого столбца из списка - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь создать новую переменную под названием «регион» на основе названий стран Африки в другой переменной. У меня есть список всех африканских стран (две показаны здесь в качестве примера), но у меня возникают ошибки.



def africa(x):
  if africalist in x:
    return 'African region'
  else:
    return 'Not African region'


df['region'] = ''

df.region= df.countries.apply(africa)

Я получаю:

'in' требуется строка как левый операнд, а не список

Ответы [ 2 ]

2 голосов
/ 10 января 2020

Я рекомендую вам посмотреть When should I want to use apply.

Вы можете использовать:

df['region'] = df['countries'].isin(africalist).map({True:'African region',
                                                     False:'Not African region'})

или

df['region'] = np.where(df['countries'].isin(africalist),
                        'African region',
                        'Not African region')
0 голосов
/ 10 января 2020

Ваше состояние неверно.

Правильный способ

if element in list_of_elements:

Итак, изменение функции africa приводит к:

def africa(x):
  if x in africalist:
    return 'African region'
  else:
    return 'Not African region'
...