根据其他两列中的条件值填充第三列

时间:2018-09-10 21:32:42

标签: pandas dataframe

大熊猫中的简单数据框:

A  B  C  
1  1  
1  0  
0  1  
0  0  

说,如果A和B都为1,我想用1填充C列,否则为0。 如果我尝试执行以下操作:

    if df['A'] == 1 and df['B'] == 1:
        df['C'] = 1
    else:
        df['C'] = 0

我得到类似:

系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

哪种代码将是最有效的,应该如何使用?

1 个答案:

答案 0 :(得分:1)

相乘

df.assign(C=df.A * df.B)

   A  B  C
0  1  1  1
1  1  0  0
2  0  1  0
3  0  0  0

all

不要这样做

df.assign(C=df[['A', 'B']].astype(bool).all(1).astype(int))

   A  B  C
0  1  1  1
1  1  0  0
2  0  1  0
3  0  0  0