2017-07-18 9 views
1

Ich habe einen Datenrahmen:in der Spalte auf der Grundlage des Intervalls von Werten in der anderen Spalte in pandas

scale year  value 
-10  2017  1 252 
-9  2017  1 011 
-8  2017   921 
-7  2017  1 161 
-6  2017  1 331 
-5  2017  1 133 
-4  2017   899 
-3  2017  1 063 
-2  2017  1 320 
-1  2017  1 201 
0  2017  1 212 
1  2017  1 543 
2  2017   656 
3  2017   443 
4  2017  1 398 
5  2017  1 776 
... 

ich brauche die Werte in value Spalte auszuwählen, die dem Bereich entsprechen, der Werte in scale Spalte, wo scale zwischen 0 und -7. In dem Beispiel sind es die Werte von 1 212 bis 1 161.

Irgendwelche Ideen, wie man das macht?

Antwort

2

Verwendung boolean indexing mit between:

df = df[df['scale'].between(-7,0)] 
print (df) 
    scale year value 
3  -7 2017 1 161 
4  -6 2017 1 331 
5  -5 2017 1 133 
6  -4 2017 899 
7  -3 2017 1 063 
8  -2 2017 1 320 
9  -1 2017 1 201 
10  0 2017 1 212 
2

können wir auch .query Methode verwenden:

In [39]: df.query("-7 <= scale <= 0") 
Out[39]: 
    scale year value 
3  -7 2017 1 161 
4  -6 2017 1 331 
5  -5 2017 1 133 
6  -4 2017 899 
7  -3 2017 1 063 
8  -2 2017 1 320 
9  -1 2017 1 201 
10  0 2017 1 212 
Verwandte Themen