Numpy "wo" mit mehreren Bedingungen

7

Ich versuche, einem Datenrahmen "df_energy" eine neue Spalte "energy_class" hinzuzufügen, die den String "high" enthält, wenn der Wert "consumption_energy" & gt; 400, "Medium", wenn der Wert "consumption_energy" zwischen 200 und 400 liegt, und "low", wenn der Wert "consumpy_energy" unter 200 liegt. Ich versuche np.where von numpy zu verwenden, aber ich sehe, dass numpy.where(condition[, x, y]) nur zwei Bedingungen behandelt, nicht 3 wie in meinem Fall.

Irgendeine Idee, mir bitte zu helfen?

Vielen Dank im Voraus

    
Poisson 23.08.2016, 19:14
quelle

4 Antworten

9

Sie können ein ternäres verwenden:

%Vor%     
Alexander 23.08.2016, 19:17
quelle
9

Ich würde hier die Methode cut () verwenden, die generiert wird sehr effizient und speichersparend category dtype:

%Vor%     
MaxU 23.08.2016 20:16
quelle
4

Versuchen Sie Folgendes: Verwenden des Setups von @Maxu

%Vor%     
Merlin 23.08.2016 22:53
quelle
2

Ich halte den Code gerne sauber. Deshalb bevorzuge ich np.vectorize für solche Aufgaben.

%Vor%

Fügen Sie dann numpy array als Spalte in Ihrem Datenrahmen hinzu:

%Vor%

Der Vorteil dieses Ansatzes besteht darin, dass Sie, wenn Sie einer Spalte kompliziertere Einschränkungen hinzufügen möchten, dies problemlos tun können. Hoffe es hilft.

    
user4340135 09.11.2017 06:56
quelle

Tags und Links