gpt4 book ai didi

python - 从索引到条件从 Pandas DataFrame 获取行

转载 作者:太空狗 更新时间:2023-10-30 02:36:47 24 4
gpt4 key购买 nike

假设我有一个 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 中找到值大于某个 threshold 的下一个 n 行。例如,如果 threshold 为 0,则结果应为:

x
Out[9]:
value
2 3
3 2
4 1
5 0

我该怎么做?

我试过:

x.loc[2:x['value']>0,:]

但是当然这不会起作用,因为 x['value']>0 返回一个 bool 数组:

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

最佳答案

使用 idxmin和切片

x.loc[2:x['value'].gt(0).idxmin(),:]

2 3
3 2
4 1
5 0
Name: value

编辑:

对于一般公式,使用

index = 7
threshold = 2
x.loc[index:x.loc[index:,'value'].gt(threshold).idxmin(),:]

根据您在评论中的描述,您似乎想从 index+1 而不是索引开始。所以,如果是这种情况,只需使用

x.loc[index+1:x.loc[index+1:,'value'].gt(threshold).idxmin(),:]

关于python - 从索引到条件从 Pandas DataFrame 获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52316689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com