【发布时间】:2019-02-18 08:45:22
【问题描述】:
假设我有一个 Pandas DataFrame:
x = pd.DataFrame(data=[5,4,3,2,1,0,1,2,3,4,5],columns=['value'])
x
Out[9]:
value
0 5
1 4
2 3
3 2
4 1
5 0
6 1
7 2
8 3
9 4
10 5
现在,给定索引,我想在x 中查找行,直到满足条件。
例如,如果index = 2:
x.loc[2]
Out[14]:
value 3
Name: 2, dtype: int64
现在我想从那个index 中找到下一个n 值大于某些threshold 的行。例如,如果threshold is 0,结果应该是:
x
Out[9]:
value
2 3
3 2
4 1
5 0
我该怎么做?
我试过了:
x.loc[2:x['value']>0,:]
但这当然行不通,因为x['value']>0 返回一个布尔数组:
Out[20]:
0 True
1 True
2 True
3 True
4 True
5 False
6 True
7 True
8 True
9 True
10 True
Name: value, dtype: bool
【问题讨论】:
-
x.loc[x['value']>0]怎么样?您可以将其与iloc的索引相结合以获得所需的结果。 -
@AdrianKeister 否,因为这将返回值大于 0 的所有行。
-
请看我的编辑。
标签: python python-3.x pandas indexing series