I think this should succeed if the original value was numeric and in this case should raise a value error because 'a' can't be coerced into a numeric value (`float("a")`)
```
self.assertRaises(ValueError, lambda : s.astype('float64'))
self.equals(s.astype('str'), ['a', 'b', 'b', 'a', 'a', 'c', 'c', 'c']) # or better a series with such values
s2 = Categorical.from_array(['1', '2', '3', '4'])
self.equals(s2.astype('int') , [1,2,3,4])
```