Pandas äquivalent von np.wo

np.where hat die semantik eines vektorisierten if / else (ähnlich wie bei Apache Spark's if / else DataFrame-Methode). Ich weiß, dass ich np.where auf Pandas- Series , aber pandas definieren oft seine eigene API, um statt rohe, numpy Funktionen zu verwenden, was in der Regel bequemer ist mit pd.Series / pd.DataFrame .

Sicher genug, ich habe pandas.DataFrame.where gefunden. Allerdings hat es auf den ersten Blick eine ganz andere Semantik. Ich konnte nicht einen Weg finden, um das grundlegendste Beispiel von np.where mit Pandas np.where , 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']) 

Bin ich etwas offensichtlich fehlt? Oder ist Pandas, where für einen völlig anderen Anwendungsfall, trotz gleicher Name wie np.where ?

One Solution collect form web for “Pandas äquivalent von np.wo”

Versuchen:

 (df['A'] + df['B']).where((df['A'] < 0) | (df['B'] > 0), df['A'] / df['B']) 

Der Unterschied zwischen dem numpy where und DataFrame where ist, dass die Standardwerte von der DataFrame geliefert werden, dass die where Methode aufgerufen wird ( docs ).

Dh

 np.where(m, A, B) 

Ist ungefähr gleichbedeutend mit

 A.where(m, B) 

Wenn du eine ähnliche Rufsignatur mit Pandas wolltest, könntest du die Möglichkeit nutzen, wie die Methode in Python funktioniert?

 pd.DataFrame.where(cond=(df['A'] < 0) | (df['B'] > 0), self=df['A'] + df['B'], other=df['A'] / df['B']) 

Oder ohne kwargs (Anmerkung: dass die Positionsordnung von Argumenten anders ist als die numpy where Argument Reihenfolge ):

 pd.DataFrame.where(df['A'] + df['B'], (df['A'] < 0) | (df['B'] > 0), df['A'] / df['B']) 
  • Nächstes Äquivalent einer Faktorvariablen in Python Pandas
  • Python 3.5.1 Kann nach dem Update nicht nachträglich importieren [duplizieren]
  • Python Panda Dataframe Sortierung mit Monat - Jahr
  • Anwenden der kumulativen Mittelfunktion auf ein gruppiertes Objekt
  • Erstellen Sie Pandas-Dataframe mit der Liste als Werte in Zeilen
  • Wie man pos_tag_sents () auf pandas dataframe effizient anwendet
  • Drop Zeilen in Pandas Dataframe basierend auf Spalten Wert
  • Sklearn.cross_validation.StratifiedShuffleSplit - Fehler: "Indizes sind out-of-bounds"
  • Hinzufügen von sheet2 zu vorhandenem excelfile aus Daten von sheet1 mit pandas python
  • Wie man Zeilen in Pandas dupliziert, basierend auf Elementen in einer Liste
  • Gibt es eine Pandas-Funktion, um die ersten / letzten n Spalten anzuzeigen, wie in .head () & .tail ()?
  • Python ist die beste Programmiersprache der Welt.