У меня есть следующий код:
import pandas as pd
import random
a = [random.randint(0, 1) for i in range(30)]
b = [random.randint(0, 1) for i in range(30)]
print(a)
print(b)
df = pd.DataFrame([a, b])
df = df.T
columns = ['column1', 'column2']
df.columns = columns
print(df)
, который создает фрейм данных, хранящийся в переменной 'df'. Он состоит из 2 столбцов (column1 и column2), заполненных случайными 0 и 1.
Это вывод, полученный при запуске программы (если вы попытаетесь запустить ее, вы не получите точно такой же результат из-за генерации randomint).
column1 column2
0 0 1
1 1 0
2 0 1
3 1 1
4 0 1
5 1 1
6 0 1
7 1 1
8 1 0
9 0 1
10 0 0
11 1 1
12 1 1
13 0 1
14 0 0
15 0 1
16 1 1
17 1 1
18 0 1
19 1 0
20 0 0
21 1 0
22 0 1
23 1 0
24 1 1
25 0 0
26 1 1
27 1 0
28 0 1
29 1 0
Я хотел бы создать фильтр для столбца 2, показывающий только кластеры данных, когда в строке три или более единиц. Вывод будет выглядеть примерно так:
column1 column2
2 0 1
3 1 1
4 0 1
5 1 1
6 0 1
7 1 1
11 1 1
12 1 1
13 0 1
15 0 1
16 1 1
17 1 1
18 0 1
Я оставил пробел между кластерами для наглядности, но реальный вывод не имел бы пустых пробелов в кадре данных.
I хотел бы сделать это следующим образом.
filter1 = (some boolean condition) &/| (maybe some other stuff)
final_df = df[filter1]
Спасибо