1

我正在阅读 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

那么,我该怎么做呢?

4

2 回答 2

0

我相信这些级别是按标签排序的:

In [38]: a.levels
Out[38]: Index([mixed, read, write], dtype=object)

In [39]: a.labels
Out[39]: array([1, 0, 2])
于 2012-10-03T00:30:35.677 回答
0

Categorical 需要一个整数数组和一个级别数组:

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)

我不相信它会做很多错误检查(因为它们通常是由其他函数创建的),但这可以改变。

于 2012-10-23T21:17:53.910 回答