Jak wygenerować kolumnę DataFrame pandas Categorical z kolumny string?

Mogę przekonwertować kolumnę pandasową na Categorical, ale gdy próbuję wstawić ją jako nową kolumnę DataFrame, wydaje się ona zostać przekonwertowana z powrotem na Serię str:

train['LocationNFactor'] = pd.Categorical.from_array(train['LocationNormalized'])

>>> type(pd.Categorical.from_array(train['LocationNormalized']))
<class 'pandas.core.categorical.Categorical'>
# however it got converted back to...
>>> type(train['LocationNFactor'][2])
<type 'str'>
>>> train['LocationNFactor'][2]
'Hampshire'

Zgadywanie jest takie, ponieważ Categorical nie mapuje do żadnego numpy; więc czy muszę przekonwertować go na jakiś typ int, a tym samym stracić powiązanie poziomów <-> etykiet czynników? Jakie jest najbardziej eleganckie obejście do przechowywania powiązań poziomów <-> etykiet i zachowania możliwości konwersji z powrotem? (po prostu przechowuj jako dyktattutaji ręcznie konwertuj w razie potrzeby?) MyślęCategorical nadal nie jest pierwszym typem danych dla DataFrame, w przeciwieństwie do R.

(Używając pand 0.10.1, numpy 1.6.2, python 2.7.3 - najnowsze wersje macportów wszystkiego).

questionAnswers(2)

yourAnswerToTheQuestion