Wie pandas DataFrame-Spalte von Categorical aus String-Spalte zu generieren?

Ich kann eine Pandas-Zeichenfolgenspalte in "Categorical" konvertieren, aber wenn ich versuche, sie als neue DataFrame-Spalte einzufügen, wird sie anscheinend direkt wieder in "Series of str" konvertiert:

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'

Vermutlich liegt das daran, dass Categorical keinem numpy dtype zugeordnet ist. Muss ich es also in einen Int-Typ konvertieren und damit die Zuordnung der Faktorbeschriftungen zu den Ebenen verlieren? Was ist die eleganteste Problemumgehung, um die Ebenen- <-> Labels-Zuordnung zu speichern und die Möglichkeit zur Rückkonvertierung beizubehalten? (Einfach als Diktat speichern wieHier, und bei Bedarf manuell konvertieren?) denke ichCategorical ist immer noch kein erstklassiger Datentyp für DataFrameim Gegensatz zu R.

(Mit Pandas 0.10.1, NumPy 1.6.2, Python 2.7.3 - die neuesten Macports-Versionen von allem).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage