pandas等价于np.where。

12 浏览
0 Comments

pandas等价于np.where。

np.where具有矢量化的if/else语义(类似于Apache Spark的when/otherwise DataFrame方法)。我知道我可以在pandas.Series上使用np.where,但是pandas通常定义自己的API来代替原始的numpy函数,这对于pd.Series/pd.DataFrame通常更方便。

果然,我找到了pandas.DataFrame.where。然而,乍一看,它具有完全不同的语义。我无法找到一种使用pandas where来重写最基本的np.where示例的方法:

# df是pd.DataFrame
# 如何使用df.where来编写这个代码?
df['C'] = np.where((df['A']<0) | (df['B']>0), df['A']+df['B'], df['A']/df['B'])

我是否忽略了一些明显的东西?或者pandas的where是用于完全不同的用例,尽管与np.where同名?

0