Ich versuche, Pandas zu verwenden pd.DataFrame.where
wie folgt:Alternative effizienten Ansatz für Pandas wo
df.where(cond=mask, other=df.applymap(f))
Wo f
eine benutzerdefinierte Funktion ist auf einer einzelnen Zelle zu betreiben. Ich kann other=f
nicht verwenden, da es scheint, ein anderes Ergebnis zu produzieren.
Also im Grunde möchte ich die Funktion f
an allen Zellen des DataFrame, die eine Bedingung nicht erfüllt, die ich als mask
angegeben bin.
Die obige Verwendung mit where
nicht sehr effizient ist, wie es f
sofort für den gesamten Datenrahmen wertet df
, während ich es nur bei einigen Einträgen der Datenrahmen bewerten müssen, die manchmal nur sehr wenige spezifische Einträge im Vergleich zu den gesamten sein kann Datenrahmen.
Gibt es eine alternative Verwendung/Vorgehensweise, die diesen allgemeinen Fall effizienter lösen könnte?
Können Sie Beispieldaten und Funktionsdefinitionen angeben? – skrubber
Können Sie nicht ändern, f? Wenn nicht, "df.applymap (Lambda x: f (x) wenn cond else x)" sollte es tun, ohne wo. – ayhan