Я всегда могу преобразовать столбец, который я изначально сделал категориальным, в столбец, который является перечислением, как только DataFrame будет «завершен».
Но: стоит ли оно того? Есть ли какие-либо преимущества с точки зрения производительности или использования памяти (, вероятно, нет )?





Enum типы данных не требуют синхронизации. Таким образом, вам не нужны StringCache, и их гораздо проще рассуждать с помощью оптимизатора Polars.
Это потому, что тип известен заранее. Он не зависит от данных и не меняется ни на каком этапе запроса.
Я бы рекомендовал использовать Enum, если у вас есть известный фиксированный набор категорий. Это обеспечивает больший параллелизм и потоковую передачу рабочих нагрузок.
Я встречаю множество вырезок из бумаги с помощью Enum. Например: сравнение двух значений перечисления иногда завершается неудачей с загадочными ошибками, такими как: «не удалось определить супертип перечисления и u32». об ошибке: github.com/pola-rs/polars/issues/17479#issuecomment-2213395578 С этого момента я постараюсь более дисциплинированно отправлять отчеты об ошибках/ошибках, учитывая преимущества Enum, но это требует серьезных усилий, когда реальная задача, над которой вы работаете, будет в порядке с простым изменением категории...
Верно. Спасибо за отчеты об ошибках. Перечисление определенно намного новее, чем Категориальное, и поэтому менее отлажено.
Я предполагаю, что при приведении из категориального в Enum копии нет. Это правильно?