尝试:
(df['A'] + df['B']).where((df['A'] < 0) | (df['B'] > 0), df['A'] / df['B'])
的之间的差
numpy
where和
Dataframe
where是,默认值是由所提供的
Dataframe是,
where正在被调用的方法上(文档)。
即
np.where(m, A, B)
大致相当于
A.where(m, B)
如果您希望使用pandas进行类似的调用签名,则可以利用Python中方法调用的工作方式:
pd.Dataframe.where(cond=(df['A'] < 0) | (df['B'] > 0), self=df['A'] + df['B'], other=df['A'] / df['B'])
或不kwargs(注:该参数的位置顺序是从不同的
numpy
where
参数顺序):
pd.Dataframe.where(df['A'] + df['B'], (df['A'] < 0) | (df['B'] > 0), df['A'] / df['B'])



