我有一个国家名称的数据框架,我想添加一个列,表明它是否是穆斯林禁令的一部分。所以,理想情况下,我希望:
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().
有人能帮忙吗?你知道吗
更新以包含修订的代码
以下是一些可能有用的东西。你知道吗
希望这有帮助!你知道吗
您确定可以按如下方式拆分函数参数:
Country Name
?也许这是你的语法错误。顺便说一句,语法错误应该显示您遇到错误的行。你知道吗你的代码很少有问题。你知道吗
首先,在u ban的函数定义中使用空格分隔的变量名。因此,将“Country Name”替换为类似“Country\u Name”
其次,可以将多个字符串放入列表中的if条件中,然后使用
in
和not in
运算符检查是否存在。你知道吗相关问题 更多 >
编程相关推荐