Python 3.x 检查另一列的布尔值后显示该列的值-0

Python 3.x 检查另一列的布尔值后显示该列的值-0,python-3.x,pandas,Python 3.x,Pandas,我有一个数据框: pd.DataFrame({ 'total_discounted_cost_bef_929': [490, 0, 490, 0], 'total_discounted_cost_aft_929': [525, 0, 525, 0], 'aft_929_bool': [False, False, True, True] }) 我想创建一个名为“最终成本”的新列。如果'aft_929_bool'==False,我希望输出是'total_discou

我有一个数据框:

    pd.DataFrame({
    'total_discounted_cost_bef_929': [490, 0, 490, 0],
    'total_discounted_cost_aft_929': [525, 0, 525, 0],
    'aft_929_bool': [False, False, True, True]
})

我想创建一个名为“最终成本”的新列。如果'aft_929_bool'==False,我希望输出是'total_discounted_cost_bef_929'列中的值。任何真值都是相反的。

尝试使用
np.where

df['New']=np.where(df['aft_929_bool'],df['total_discounted_cost_aft_929'], df['total_discounted_cost_bef_929'])
df
Out[117]: 
   total_discounted_cost_bef_929  ...  New
0                            490  ...  490
1                              0  ...    0
2                            490  ...  525
3                              0  ...    0
[4 rows x 4 columns]

谢谢,这很有效。我总是试图将lambda函数应用于这些类型的问题,但似乎是np。当我想检查2列或更多列的值时,哪里是更好的选择?@MichaelMathewsJr。然后用np.select检查~