Count
Count()
Для каждого объекта считает строки, удовлетворяющие условию. Без условия считает все строки объекта.
Использование
transactions — обучающая таблица событий с бинарным target, одинаковым внутри каждого клиента.
from featminer import one_to_many_pipeline
from featminer.formulas import Count
features = one_to_many_pipeline(
df=transactions,
aggregation_key="client_id",
target_col="target",
formulas=(Count(),),
)
Count() задаёт способ расчёта; условия pipeline формирует автоматически. features содержит признаки, прошедшие отбор по таргету.
Пример результата
Платежи df; client_id — ключ объекта. Рассмотрим один кандидат с условием status = 'paid'.
| client_id | status | |
|---|---|---|
| 0 | 1 | paid |
| 1 | 1 | failed |
| 2 | 1 | paid |
| 3 | 2 | failed |
| 4 | 2 | None |
Количество платежей со статусом paid по клиентам:
| Count | |
|---|---|
| client_id | |
| 1 | 2 |
| 2 | 0 |
Эквивалентный расчёт на pandas
mask — результат условия для каждой строки: True или False; неопределённый результат считается False.
Условия
min_category_fraction=0.01— минимальная доля категории и строк, соответствующих условию, во всей таблице.derived_columns.max_condition_columns=1— максимум колонок в условии; при2возможны сочетания черезAND.