在数据框列周围嵌套带有布尔条件的if语句

时间:2019-10-31 16:05:45

标签: pandas dataframe

我正在努力满足我的一项要求。让我尝试解释一下。

我有一个150列的DataFrame。我需要检查column1,column2,column3和column4中的值是否等于零。如果是,那么我需要向DataFrame中添加一个新列,并将值设置为1,否则将值设置为0。

我确实尝试使用嵌套的if条件语句对此进行编码,但出现错误“系列的真值不明确。请使用a.empty,a.bool()a.item(),{{ 1}}或a.any()”。我尝试了所有已知的事情,并根据此处提供的解决方案进行了尝试,但无法克服此错误。

能否让我知道如何完成此操作?预先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

尝试:

df["new_column"]=0
df.loc[(df["column1"]==0) & (df["column2"]==0) &(df["column3"]==0) & (df["column4"]==0), ["new_column"]]=1

答案 1 :(得分:-1)

尝试使用以下代码(在行上应用循环)

Df['new column']=Df.apply(lambda x: 1 if Df['column1']==1 and Df['column2']==1 and  Df['column3']==1 else 0, axis=1)