Фильтр данных Pandas на основе условия для первых n строк

В качестве регулярного выражения поддержки Mongo shell это вполне возможно.

db.users.findOne({"name" : /.*sometext.*/});

Если мы хотим, чтобы запрос был нечувствительным к регистру, мы можем использовать опцию «i», как показано ниже:

db.users.findOne({"name" : /.*sometext.*/i});
4
задан Rui Nian 26 March 2019 в 23:40
поделиться

1 ответ

Подход заключается в том, чтобы использовать нарезку индекса кадра данных с помощью pd.concat для построения полной логической серии:

import numpy as np
import pandas as pd
np.random.seed(0)
df=pd.DataFrame(np.random.randint(0,50,60))

df[pd.concat([df.iloc[:10] > 10, df[11:40] < 30, df[41:] % 2 == 0])]

Где первые 10 записей фильтруют менее 10, следующие 30 фильтров значений больше 30, а последние значения проверяют четные числа.

Затем вы можете использовать dropna, чтобы удалить все значения NaN

Вывод:

      0
0   44.0
1   47.0
2    NaN
3    NaN
4    NaN
5   39.0
6    NaN
7   19.0
8   21.0
9   36.0
10   NaN
11   6.0
12  24.0
13  24.0
14  12.0
15   1.0
16   NaN
17   NaN
18  23.0
19   NaN
20  24.0
21  17.0
22   NaN
23  25.0
24  13.0
25   8.0
26   9.0
27  20.0
28  16.0
29   5.0
30  15.0
31   NaN
32   0.0
33  18.0
34   NaN
35  24.0
36   NaN
37  29.0
38  19.0
39  19.0
40   NaN
41   NaN
42  32.0
43   NaN
44   NaN
45  32.0
46   NaN
47  10.0
48   NaN
49   NaN
50   NaN
51  28.0
52  34.0
53   0.0
54   0.0
55  36.0
56   NaN
57  38.0
58  40.0
59   NaN
0
ответ дан Scott Boston 26 March 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: