的內容在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
我在最後一行看到一個** **字符和**國家名**。 –