Поляры – получить «уровни» категориального столбца?Python

Программы на Python
Anonymous
 Поляры – получить «уровни» категориального столбца?

Сообщение Anonymous »

Если в pandas мы создадим категориальное значение, а затем отбросим одно из значений, мы все равно сможем увидеть это значение из внутреннего словаря.

Код: Выделить всё

In [44]: s = pd.Series(['one', 'two', 'three']).astype('category')[:2]

In [45]: s
Out[45]:
0    one
1    two
dtype: category
Categories (3, object): ['one', 'three', 'two']

In [46]: s.value_counts()
Out[46]:
one      1
two      1
three    0
Name: count, dtype: int64

Код: Выделить всё

.value_counts
показывает, что третья категория имеет 0 вхождений, хотя третья не появляется в s. Он знает, что является частью уровней этой категории.
Вы можете получить все категории с помощью:

Код: Выделить всё

In [52]: s.dtype.categories
Out[52]: Index(['one', 'three', 'two'], dtype='object')
Можем ли мы в полярах восстановить значения из внутреннего словаря, если они были удалены из данных?

Код: Выделить всё

In [47]: s = pl.Series('category', ['one', 'two', 'three'], pl.Categorical)[:2]

In [48]: s
Out[48]:
shape: (2,)
Series: 'category' [cat]
[
"one"
"two"
]

In [49]: s.value_counts()
Out[49]:
shape: (2, 2)
┌──────────┬────────┐
│ category ┆ counts │
│ ---      ┆ ---    │
│ cat      ┆ u32    │
╞══════════╪════════╡
│ two      ┆ 1      │
│ one      ┆ 1      │
└──────────┴────────┘
Можно ли вообще получить все категории из dtype?

Примечание: это не то же самое, что создать категориальный столбец с категориями ['a', 'b', 'c'] в Polars. Здесь я уже создал категориальные данные и хочу посмотреть, какие категории у них есть

Подробнее здесь: https://stackoverflow.com/questions/766 ... cal-column

Вернуться в «Python»