2017-07-18 64 views
1

我有一個數據幀:選擇基於值的在大熊貓另一列中的間隔值在列的範圍內

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 
... 

我需要選擇在value列對應於範圍內的值值在scale列中,其中scale0-7之間。在這個例子中,它將是從1 2121 161的值。

有關如何做到這一點的任何想法?

回答

2

使用boolean indexingbetween

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

我們還可以使用.query方法:

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 
相關問題