tôi có thể chuyển đổi một cột chuỗi gấu trúc để Categorical, nhưng khi tôi cố gắng để chèn nó như là một cột DataFrame mới có vẻ như để có được chuyển đổi trở lại quyền loạt các str:Làm thế nào để tạo các cột DataFrame của Categorical từ cột chuỗi?
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'
đoán này là bởi vì Categorical doesn' t bản đồ cho bất kỳ loại numpy dtype; vì vậy tôi phải chuyển đổi nó thành một số loại int, và do đó mất các yếu tố nhãn < -> mức độ hiệp hội? Cách giải quyết thanh lịch nhất để lưu trữ cấp độ < -> liên kết nhãn và giữ lại khả năng chuyển đổi trở lại là gì? (Chỉ cần lưu trữ như một dict như here, và tự chuyển đổi khi cần thiết?) Tôi nghĩ Categorical is still not a first-class datatype for DataFrame, không giống như R.
(Sử dụng gấu trúc 0.10.1, numpy 1.6.2, python 2.7.3 - các macports phiên bản mới nhất của mọi điều).
Tôi biết rằng, nhưng vấn đề ở đây là tất cả được thổi trở lại str khi chúng ta gán cho một cột DataFrame, giống như tôi đã giới thiệu: 'tàu [ 'LocationNFactor' ] = pd.Categorical ... ' – smci