如何筛选数据,然后选择接下来的10行



我目前正在过滤我的数据集基于某些语句,如:

from sklearn.datasets import load_iris
iris = load_iris()
data1 = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
columns= iris['feature_names'] + ['target'])
# filter dataset
data1[(data1['sepal length (cm)'] > 4) |  (data1['sepal width (cm)'] > 3)]

我希望能够在每个过滤器之后获得下一个10行,我不确定如何开始,例如,当他们发现一行长度大于4时,我想返回下一个10行以及那个等。

请让我知道我该怎么做。

您加载的数据集具有从0开始的顺序索引。

要获得过滤器后的10行,您要查找索引在index of the most recent filtered row10 + index of the most recent filtered row之间的行

然而,您提供的过滤器(data1['sepal length (cm)'] > 4) | (data1['sepal width (cm)'] > 3)匹配每一行。最小宽度为2。对于这个例子,我将使用过滤器sepal length (cm) == 4.6和过滤the next 5 rows代替10


filt = data1['sepal length (cm)'] == 4.6
data1.loc[filt, 'sentinel'] = data1.index[filt]
data1.sentinel = data1.sentinel.ffill()
data1[(data1.index >= data1.sentinel) & (data1.index <= data1.sentinel + 5)]

过滤

以下21行
sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  target  sentinel
3                 4.6               3.1                1.5               0.2     0.0       3.0
4                 5.0               3.6                1.4               0.2     0.0       3.0
5                 5.4               3.9                1.7               0.4     0.0       3.0
6                 4.6               3.4                1.4               0.3     0.0       6.0
7                 5.0               3.4                1.5               0.2     0.0       6.0
8                 4.4               2.9                1.4               0.2     0.0       6.0
9                 4.9               3.1                1.5               0.1     0.0       6.0
10                5.4               3.7                1.5               0.2     0.0       6.0
11                4.8               3.4                1.6               0.2     0.0       6.0
22                4.6               3.6                1.0               0.2     0.0      22.0
23                5.1               3.3                1.7               0.5     0.0      22.0
24                4.8               3.4                1.9               0.2     0.0      22.0
25                5.0               3.0                1.6               0.2     0.0      22.0
26                5.0               3.4                1.6               0.4     0.0      22.0
27                5.2               3.5                1.5               0.2     0.0      22.0
47                4.6               3.2                1.4               0.2     0.0      47.0
48                5.3               3.7                1.5               0.2     0.0      47.0
49                5.0               3.3                1.4               0.2     0.0      47.0
50                7.0               3.2                4.7               1.4     1.0      47.0
51                6.4               3.2                4.5               1.5     1.0      47.0
52                6.9               3.1                4.9               1.5     1.0      47.0

最新更新