np.where
ma semantykę wektoryzowanego if/else (podobnie jak metoda DataFrame Apache Sparka o nazwie when
/otherwise
). Wiem, że mogę używać np.where
na pandach Series
, ale pandas
często definiuje własny interfejs API zamiast zwykłych funkcji numpy
, co jest zwykle wygodniejsze przy użyciu pd.Series
/pd.DataFrame
.odpowiednik pandy np. Gdzie
Oczywiście, znalazłem pandas.DataFrame.where
. Jednak na pierwszy rzut oka ma zupełnie inną semantykę. Nie mogłem znaleźć sposób, aby przepisać najbardziej podstawowy przykład np.where
korzystających pand 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'])
jestem brakuje czegoś oczywiste? Czy też panda where
jest przeznaczona do zupełnie innego zastosowania, pomimo tej samej nazwy, co np.where
?
Docstring http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.where.html wydaje się wyjaśniać go dość dobrze (chociaż mógłby użyć przykładu lub dwóch). Zwróć uwagę na krótki opis i opis argumentów "cond" i "other", ale zignoruj opcję, aby argumenty te można było wywoływać. –
@WarrenWeckesser W drugim czytaniu dokumentów, myślę, że mam to ... To coś jak '(df.A + df.B) .where ((df ['A'] <0) | (df [' B ']> 0), df.A/df.B) ', prawda? Wydaje mi się, że usunę moje pytanie. – max
@max: Nie, nie usuwaj. To prawdopodobnie pomoże komuś w przyszłości. – bernie