ValueError:具有多个元素的数组的真值不明确。熊猫系列

时间:2019-03-06 14:33:15

标签: python pandas dataframe series

我知道这个问题已经解决了很多次,但是我发现的答案对我不起作用。 所以我操作的Dataframe列如下所示: http://prntscr.com/mu3i86 而且我想像这样创建新列:

df2['Vpip'] = ['No' if (df2['Call_Pre'] == '[]') & (df2['Raise_Pre'] == '[]') else 'Yes' for index, row in df2.iterrows()] 

我认为括号可以,我也使用运算符&|。而不是and或or语句,但它仍然引发我错误。 你能帮我解决吗?

3 个答案:

答案 0 :(得分:2)

使用np.where()

df2['Vpip'] = np.where((df2['Call_Pre'] == '[]') & (df2['Raise_Pre'] == '[]'),'No','Yes')

对于elif语句,请查看np.select()

答案 1 :(得分:2)

使用map

df2['Vpip'] = ((df2['Call_Pre'] == '[]') & (df2['Raise_Pre'] == '[]')).map({True:'Yes',False:'No'})

答案 2 :(得分:1)

我建议您使用apply功能:

def f(row):
    if row['Call_Pre']=='[]' and row['Raise_Pre']=='[]':
        val = 'No'
    else:
        val = 'Yes'
    return val

df2['Vpip'] = df2.apply(f, axis=1)