Pandas Dataframe 列的条件计算

Mos*_*man 1 python if-statement pandas

我有一个 pandas 数据框,其内容如下

Category  Sales  
A           10
B           20
Run Code Online (Sandbox Code Playgroud)

我想有条件地创建新列目标

我希望我的目标 df 看起来像

Category  Sales  Target 
A           10    5
B           20   10
Run Code Online (Sandbox Code Playgroud)

我使用了下面的代码,它引发了一个错误

if(df['Category']=='A'):
    df['Target']=df['Sales']-5
else:
    df['Target']=df['Sales']-10
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

使用矢量化numpy.where

df['Target']= np.where(df['Category']=='A', df['Sales'] - 5, df['Sales'] - 10)
print (df)
  Category  Sales  Target
0        A     10       5
1        B     20      10
Run Code Online (Sandbox Code Playgroud)