如何修复这段代码,因为我试图根据各种条件给列中的值赋值。编写下面的代码会给我一个错误,提示我:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
list = [df1,df2,df3,df4] # multiple dataframes
grp_list = ["con", "eco", "dip", "pol"] # multiple categories in a column
for i in list:
if i['pgp'].isin(group_list) and (i.egp == i.pgp):
i['value'] == 1
elif ~i['pgp'].isin(group_list):
i['value'] == 2
else:
i['value'] == 0
预期输出df1
:
pgp egp value
con con 1 # return 1 if pgp value is in the element list & pgp = egp
eco eco 1
dip health 0 # else 0
pol health 0
god con 2
ent eco 2 # return 2 if pgp value is not in the element list
2条答案
按热度按时间k97glaaz1#
使用
np.select
~kpbwa7wx2#
您可以在此处使用
np.select
:产出: