我正在尝试根据另一个变量中非洲国家的名称创建一个名为“ region”的新变量。我列出了所有非洲国家的清单(此处以两个国家为例),但是遇到错误。
def africa(x):
if africalist in x:
return 'African region'
else:
return 'Not African region'
df['region'] = ''
df.region= df.countries.apply(africa)
我得到了:
'in'需要字符串作为左操作数,而不是列表
答案 0 :(得分:2)
我建议您看到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')
答案 1 :(得分:0)
您的情况不正确。
正确的方式是
if element in list_of_elements:
因此,更改功能africa
会导致:
def africa(x):
if x in africalist:
return 'African region'
else:
return 'Not African region'