ColumnRule#

class scikitplot.feature_selection.ColumnRule(columns=(), patterns=())[source]#

Select columns by exact name and/or shell-style pattern.

Parameters:
columnsstr or sequence of str, default=()

Exact column names.

patternsstr or sequence of str, default=()

fnmatch.fnmatchcase patterns ("cat_*", "x_[0-9]"). Matching is case-sensitive on every platform.

Parameters:

See also

FeaturePolicy

Uses column rules for roles and tags.

Notes

User note. A list is shorthand for columns; ColumnRule(["a"]) and {"columns": ["a"]} in a config file are the same rule.

Developer note. Patterns use fnmatchcase (not fnmatch), so a rule selects the same columns on Windows and POSIX.

Examples

>>> from scikitplot.feature_selection import ColumnRule
>>> ColumnRule(columns=["age"], patterns=["cat_*"]).resolve(
...     ["age", "cat_a", "cat_b", "income"]
... )
('age', 'cat_a', 'cat_b')
columns: tuple[str, ...] = ()#
classmethod from_value(value, *, field='rule')[source]#

Build a rule from its config form: a string, a list, a mapping or a rule.

Parameters:
valuestr, list of str, mapping or ColumnRule

{"columns": [...], "patterns": [...]} or the list shorthand.

fieldstr, default=”rule”

Name used in error messages.

Returns:
ColumnRule

The rule.

Raises:
PolicyError

If the value is off contract.

Parameters:
Return type:

ColumnRule

property is_empty: bool#

True when the rule names no column and no pattern.

Type:

bool

patterns: tuple[str, ...] = ()#
resolve(names, *, on_missing='raise', field='rule')[source]#

Return the names this rule selects, in the order of names.

Parameters:
namessequence of str

Available column names.

on_missing{“raise”, “ignore”}, default=”raise”

What to do with an exact name that is not in names.

fieldstr, default=”rule”

Name used in error messages.

Returns:
tuple of str

Selected names, each once, in names order.

Raises:
PolicyError

If on_missing="raise" and an exact name is absent.

Parameters:
Return type:

tuple[str, …]

to_dict()[source]#

Return the config form {"columns": [...], "patterns": [...]}.

Return type:

dict[str, list[str]]