我正在阅读CSV,我想按照自己的顺序将其中一列列为分类。我怎么做?这三个标签是“读”,“写”和“混合”。以下是一些不起作用的事情:
Categorical(my_csv.rw, ['read', 'write', 'mixed'])
ValueError: invalid literal for long() with base 10: 'mixed'
Categorical(my_csv.rw, Index(['read', 'write', 'mixed']))
ValueError: invalid literal for long() with base 10: 'mixed'
Categorical(['read', 'mixed', 'write'], Index(['read', 'write', 'mixed']))
ValueError: invalid literal for long() with base 10: 'mixed'
Categorical.from_array(['read', 'mixed', 'write']) # Levels in wrong order
那么,我该怎么做呢?
答案 0 :(得分:0)
我认为这些级别是由标签订购的:
In [38]: a.levels
Out[38]: Index([mixed, read, write], dtype=object)
In [39]: a.labels
Out[39]: array([1, 0, 2])
答案 1 :(得分:0)
分类需要一个整数数组和一个级别数组:
In [14]: Categorical([0, 1, 2], Index(['read', 'write', 'mixed']))
Out[14]:
Categorical:
array([read, write, mixed], dtype=object)
Levels (3): Index([read, write, mixed], dtype=object)
我不相信它会进行太多的错误检查(因为通常它们是由其他一些函数创建的)但是这可以改变。