的内容在Python中添加一个新列我有一个国家名称的数据框,我想添加一个表明它是否是穆斯林禁令的一部分的列。因此,理想情况下,我想这一点:基于另一个
Country Name Ban
Indonesia non_muslim_ban
Iran, Islamic Rep. muslim_ban
Iraq non_muslim_ban
Ireland non_muslim_ban
Libya muslim_ban
Liechtenstein non_muslim_ban
Somalia muslim_ban
South Africa non_muslim_ban
Sudan muslim_ban
Syrian Arab Republic muslim_ban
West Bank and Gaza non_muslim_ban
Yemen, Rep. muslim_ban
Zambia non_muslim_ban
Zimbabwe non_muslim_ban
我想这个功能得到了一个错误:
def muslim_ban(Country_Name):
if df['Country Name'] in ['Iran', 'Libya', 'Somalia', 'Sudan', 'Syria', 'Yemen']:
return 'muslim_ban'
elif df['Country Name'] not in ['Iran', 'Libya', 'Somalia', 'Sudan', 'Syria', 'Yemen']:
return 'non_muslim_ban'
`df['muslim_ban'] = df['Country Name'].apply(muslim_ban)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
有人能帮助吗?
更新,包括修改后的代码
谢谢!这工作...但是当我这样做:df_details_by_country ['mulsim_ban'] = df_details_by_country.Country Name.apply(muslim_ban),我收到另一个语法错误右边应用附近。你可知道发生了什么? –
我认为问题的代码的第二行是'='而不是'=='。这里的代码解决了这个问题。我仍然认为'elif'并不是真的有必要。 – Michael
我在最后一行看到一个** **字符和**国家名**。 –