2016-11-10 3 views
1

Ich habe einen Pandas Datenrahmen mit den folgenden Spalten:Wie kann ich pandas zuweisen, um eine neue Spalte mit mehreren Bedingungen zu erstellen?

Date, Variable 1, rank_pct 

Ich versuchen assign zu verwenden, um eine neue Spalte erstellen „ls“ genannt, die mit 1, -1, oder 0 drin.

  1. Wenn die rank_pct < 0,10 ist, setzen Sie ein 1 in der Spalte ls
  2. Wenn die rank_pct> 0,90 ist, lege eine -1 in der Spalte ls.
  3. Wenn rank_pct etwas anderes ist, geben Sie 0 in die Spalte ein.

Ich will nicht ein for-Schleife verwenden, um durch jede Zeile in der Spalte rank_pct iterieren, und ich habe bereits versucht, die folgende (die eine Spalte mit True/False zurück:

data = data.assign(ls= data['rank_pct']<.10) 

gibt es einen Befehl, den ich in den Klammern stellen die T/F in 1, -1 und 0

Antwort

1

Sie geschachtelt verwenden np.where können konvertieren:?

data.assign(ls=np.where(data.rank_pct<.1, 1, 
         np.where(data.rank_pct>.9, -1, 0))) 
Verwandte Themen