Ich hatte das Gefühl, dass das "Wo" -Verhalten von Numpy und Pandas entgegengesetzt war, also werde ich es teilen.
Es gibt "where" - und "mask" -Methoden, die Werte entsprechend den Bedingungen zuweisen. Details zur Methode finden Sie unter hier. (Ich bin dir immer zu Dank verpflichtet: bete :)
Hier ist ein gutes Beispiel.
import numpy as np
import pandas as py
test = np.array([1,2,3])
Angenommen, Sie möchten diese "2" durch "200" ersetzen.
Lass es uns mit np.where
machen.
>>> pd.Series(np.where(test == 2, 200, test))
0 1
1 200
2 3
dtype: int64
Sie erhalten das gewünschte Ergebnis.
Was ist also mit "pd.where"?
>>> pd.Series(test).where(test == 2, 200)
0 200
1 2
2 200
dtype: int64
Es tut mir Leid. Das Ergebnis war das Gegenteil von dem, was ich anstrebte ...
Verwenden Sie "pd.mask" anstelle von "np.where".
>>> pd.Series(np.where(test == 2, 200, test))
0 1
1 200
2 3
dtype: int64
Ich möchte, dass Sie das Verhalten mit "np.where" abgleichen ...
Recommended Posts