np.where
具有向量化if/else的語義(類似於Apache Spark的when
/otherwise
DataFrame方法)。我知道我可以在大熊貓Series
上使用np.where
,但pandas
通常定義了自己的API來代替原始的numpy
函數,這通常更方便pd.Series
/pd.DataFrame
。我發現。然而,乍一看,它具有完全不同的語義。我無法找到一個方法來改寫np.where
使用熊貓where
最基本的例子:熊貓等價於np.where
# df is pd.DataFrame
# how to write this using df.where?
df['C'] = np.where((df['A']<0) | (df['B']>0), df['A']+df['B'], df['A']/df['B'])
我失去了一些東西明顯?或者是熊貓where
用於完全不同的用例,儘管np.where
的名稱相同?
docstring http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.where.html似乎很好地解釋它(雖然它可以使用一個或兩個例子)。注意簡短的描述,以及'cond'和'other'參數的描述,但忽略這些參數被調用的選項。 –
@WarrenWeckesser對文檔的第二次閱讀,我想我明白了......這就像'(df.A + df.B).where((df ['A'] <0)|(df [' B']> 0),df.A/df.B)',對吧?我想我會刪除我的問題。 – max
@max:不要刪除。這將有可能在未來幫助某人。 – bernie