我知道这个问题已经解决了很多次,但是我发现的答案对我不起作用。 所以我操作的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语句,但它仍然引发我错误。 你能帮我解决吗?
答案 0 :(得分:2)
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)