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检查~