plydata.cat_tools.cat_collapse¶
-
plydata.cat_tools.
cat_collapse
(c, mapping, group_other=False)[source]¶ Collapse categories into manually defined groups
- Parameters
- clist-like
Values that will make up the categorical.
- mapping
dict
New categories and the old categories contained in them.
- group_other
False
If
True
, a category is created to contain all other categories that have not been explicitly collapsed. The name of the other categories isother
, it may be postfixed by the first available integer starting from 2 if there is a category with a similar name.
- Returns
- out
categorical
Values
- out
Examples
>>> c = ['a', 'b', 'c', 'd', 'e', 'f'] >>> mapping = {'first_2': ['a', 'b'], 'second_2': ['c', 'd']} >>> cat_collapse(c, mapping) ['first_2', 'first_2', 'second_2', 'second_2', 'e', 'f'] Categories (4, object): ['first_2', 'second_2', 'e', 'f'] >>> cat_collapse(c, mapping, group_other=True) ['first_2', 'first_2', 'second_2', 'second_2', 'other', 'other'] Categories (3, object): ['first_2', 'second_2', 'other']
Collapsing preserves the order
>>> cat_rev(c) ['a', 'b', 'c', 'd', 'e', 'f'] Categories (6, object): ['f', 'e', 'd', 'c', 'b', 'a'] >>> cat_collapse(cat_rev(c), mapping) ['first_2', 'first_2', 'second_2', 'second_2', 'e', 'f'] Categories (4, object): ['f', 'e', 'second_2', 'first_2'] >>> mapping = {'other': ['a', 'b'], 'another': ['c', 'd']} >>> cat_collapse(c, mapping, group_other=True) ['other', 'other', 'another', 'another', 'other2', 'other2'] Categories (3, object): ['other', 'another', 'other2']