np.where
имеет семантику векторизованного if/else (аналогично методу Apache Spark when
/otherwise
DataFrame). Я знаю, что я могу использовать np.where
в pandas Series
, но pandas
часто определяет свой собственный API для использования вместо raw numpy
функций, что обычно более удобно с pd.Series
/pd.DataFrame
.
Конечно, я нашел pandas.DataFrame.where
. Однако, на первый взгляд, он имеет совершенно другую семантику. Я не мог найти способ переписать наиболее простой пример np.where
с помощью pandas 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'])
Я пропустил что-то очевидное? Или pandas where
предназначен для совершенно другого варианта использования, несмотря на то же имя, что и np.where
?