Я хотел бы преобразовать серию данных в категориальные, учитывая существующее отображение кода / метки категориальных данных. Я борюсь с преобразованием серии, содержащей (а) метки, в категориальную, и серии, содержащей коды (b), в категориальную.
Данные серии содержат коды (вместо меток категорий, которые отличаются от найдено много примеров).
Вот что я получил до сих пор:
# this is the code-label mapping that I'd like to apply for the
# (a) label -> cat conversion (`df1`)
# (b) code -> cat conversion (`df2`)
>>> cat = pd.Categorical.from_codes([-1, 1, 2, 3], ['-', 'a', 'b', 'c'])
>>> cat.codes
array([-1, 1, 2, 3], dtype=int8)
>>> cat
[NaN, a, b, c]
Categories (4, object): [-, a, b, c]
>>> cat.__array__
<bound method Categorical.__array__ of [NaN, a, b, c]
Categories (4, object): [-, a, b, c]>
>>> df1
x
0 a
1 a
2 c
3 b
4 b
>>> df2
y
0 nan
1 1
2 3
3 2
4 2
Как бы я go о преобразовании x
для использования cat
в качестве типа. Я думаю, что проблема у меня заключается в том, что я не совсем понимаю, что такое pd.Categorical
на самом деле или как оно предназначено для использования (это dtype (не кажется так), действительно ли это серия (не кажется, что либо, так как тогда это позволит дублировать))? Кажется, он содержит только фактическое сопоставление меток кода, но я не уверен, как его использовать (т.е. применить его к уже существующей серии).