mogę przekonwertować kolumnę pandy ciąg do kategoryczny, ale gdy próbuję wstawić je jako nowe kolumny DataFrame wydaje zamieniony z powrotem do serii str:Jak wygenerować kolumnę DataFrame pandy klasy Categorical z kolumny łańcucha?
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'
odgadywanie to dlatego Categorical robi” t mapować do dowolnego numpy dtype; więc czy muszę go przekonwertować na jakiś typ int, a tym samym stracić etykietę współczynników < -> poziomy asocjacji? Jakie jest najbardziej eleganckie obejście do przechowywania poziomów < -> powiązanie etykiet i zachować możliwość konwersji z powrotem? (Tylko zapisać jako dict jak here i ręcznie konwertować, gdy są potrzebne?) myślę Categorical is still not a first-class datatype for DataFrame, w przeciwieństwie do R.
(Korzystanie pandy 0.10.1, numpy 1.6.2, Python 2.7.3 - najnowsza DarwinPorts wersjach wszystko).
Wiem o tym, ale problemem jest to, że wszystko zostaje wysadzony z powrotem do STR kiedy przypisać do kolumny DataFrame, jak pokazałem: 'pociąg [ 'LocationNFactor' ] = pd.Categorical ... ' – smci