我有一个类似的代码:
def sample_func(new_df):
if ( new_df['name'] == 'Tom'):
return "Yes"
elif( new_df['name'].isin(['Harry', 'Jerry', 'Savi', 'Aavi'])):
return "Common Name"
else:
return None
我收到以下错误消息:
ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
如何解决此类错误?
答案 0 :(得分:4)
使用numpy.select
:
def sample_func(new_df):
m1 = new_df['name'] == 'Tom'
m2 = new_df['name'].isin(['Harry', 'Jerry', 'Savi', 'Aavi'])
new_df['new'] = np.select([m1, m2], ['Yes','Common Name'], default=None)
return new_df
有关您的错误的更多信息是here。
答案 1 :(得分:2)
我已经用any
修改了您的代码以得到结果:-
def sample_func(new_df):
if any( new_df['name'] == 'Tom'):
return "Yes"
elif any( new_df['name'].isin(['Harry', 'Jerry', 'Savi', 'Aavi'])):
return "Common Name"
else:
return None
输出
Yes
希望对您有帮助。