выбросы

Выбросы

Подсчет количества:
print(len(data.query('col < 15')) / len(data))

Поиск групп с аномальными значениями и подсчет количества по группе, убираем группы с большим количеством выбросов:
df['too_many'] = data['col_how_many'] < 20

mean_stat = df.pivot_table(index="col1", values="too_many")

good_id = mean_stat.query('too_many < 0.2')

best_data = df.query('col1_id in @good_id.index')
print (len(df))
print (len(best_data))

Срезы, query()

print(df.query('col1 == "smth"'))

df.query('col1 == True or col2 == True')

df.query('col1 == "smth" and (col2 == True or col3 == False)')

Порядок операций:
not, and, or.

Срез с условием и математической операцией:
df.query('col1 > 3 * col2 ')

Срез с методом:
df.query('col1 < col2.mean()')

Срезы с внешними параметрами не из датафрейма:
df.query('col1 <= @existing_name')

Срезы для избавления от выбросов:
data.query('col1 < 10')

Подписка на RSS - выбросы