Перейти к содержанию

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.

mask = df["status"].eq("paid").fillna(False)
result = mask.astype(int).groupby(df["client_id"]).sum()

Условия

  • min_category_fraction = 0.01 — минимальная доля категории и строк, соответствующих условию, во всей таблице.
  • derived_columns.max_condition_columns = 1 — максимум колонок в условии; при 2 возможны сочетания через AND.

Каталог формул.