pandas astype类别不起作用

时间:2016-06-21 18:37:23

标签: pandas

我厌倦了使用http://pandas.pydata.org/pandas-docs/stable/categorical.html

中的文档将列更改为catgeory
df = pd.DataFrame({'A':[1,2,3,4,5], 'B':['a','b','c','d','e'], 'C':['A','B','A','B','A']})
df['C']=df['C'].astype('category')

如果我尝试传递类别

df['C']=df['C'].astype('category',categories=['A','B'])

错误地说

TypeError: _astype() got an unexpected keyword argument 'categories'

将类别传递给astype()的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您现在需要通过CategorialDtype传递它,因为astype方法不再接受它们

from pandas.api.types import CategoricalDtype
df = pd.DataFrame({'A':[1,2,3,4,5], 'B':['a','b','c','d','e'], 'C':['A','B','A','B','A']})
df['C']=df['C'].astype(CategoricalDtype(categories=['A','B']))

答案 1 :(得分:0)

分类作品。

myCategory = ['A','B']
df['C'] = pd.Categorical(df['C'], categories=myCategory, ordered=True)