2016-12-23 2 views
0

aussieht Mein Datenrahmen erfüllt ist wie folgt:einen Wert aus einem Python-Datenrahmen auswählen, wenn eine Bedingung

df_data = pd.read_csv("SKU12345.csv", index_col=0) 

, wo die CSV verweise ich die folgenden Werte hat:

SKU,Tag,Fall,Wert 
0,12345,1,WE,1000 
1,12345,1,ABV,10 
2,12345,1,PRO,0 
3,23456,2,WE,10000 

Ich mag eine if-Bedingung zu machen, die wie folgt lautet:

If 'Fall' == 'WE' 
and if 'Wert' of this row > 100: 
print('Wert' of row with 'Fall' == 'WE') 

Das Resultat, das ich bekommen möchten ist

1000 
10000 

Vielen Dank!

Antwort

0

Ist das wonach Sie suchen?

for v in df[(df['Wert'] > 100) & (df['Fall'] == 'WE')]['Wert'].values: 
    print(v) 

Im Wesentlichen Sie zuerst filtern, um den Datenrahmen von allen Werten größer als 100 in Spalte Wert und durch Spalte Fall für WE

df[(df['Wert'] > 100) & (df['Fall'] == 'WE')] 

Die & erforderlich ist, um Kette mehr conditionals - es kann nicht ersetzt werden von and oder && afaik.

und dann direkt auf die Werte in der Spalte Wert zugreifen.

df[(df['Wert'] > 100) & (df['Fall'] == 'WE')]['Wert'].values 

.values einer Spalte gibt die Daten der Spalte als numpy.array, so können Sie einfach Schleife über sie wie eine Liste.

+0

oh, das habe ich nicht bemerkt. Richtig, dies ist nicht enthalten, kann aber geändert werden. Eine Sekunde, ich werde meine Antwort aktualisieren – nlsdfnbch

+0

ja, das ist es !!! Perfekt, vielen Dank! – Nora

+0

hast du mich nach 4 Stunden Recherche gerettet;) – Nora

Verwandte Themen