获取分类变量的类别列表(Python Pandas)

Mon*_*ona 4 python pandas categorical-data

我有一个Pandas DataFrame,它的列表示分类变量。如何获得类别列表?我在列上尝试了.values,但是没有返回唯一的级别。

谢谢!

jez*_*ael 7

我相信需要Series.cat.categoriesunique

np.random.seed(1245)

a = ['No', 'Yes', 'Maybe']
df = pd.DataFrame(np.random.choice(a, size=(10, 3)), columns=['Col1','Col2','Col3'])
df['Col1'] = pd.Categorical(df['Col1'])

print (df.dtypes)
Col1    category
Col2      object
Col3      object
dtype: object

print (df['Col1'].cat.categories)
Index(['Maybe', 'No', 'Yes'], dtype='object')

print (df['Col2'].unique())
['Yes' 'Maybe' 'No']

print (df['Col1'].unique())
[Maybe, No, Yes]
Categories (3, object): [Maybe, No, Yes]
Run Code Online (Sandbox Code Playgroud)


小智 6

您也可以使用 value_counts(),但它仅在您将它与列名一起使用时才有效,您还将获得每个类别的计数。例子:

dataframe['Columnn name'].value_counts()

或者,如果您想要变量中类别的总数,您可以这样做,

dataframe['Columnn name'].value_counts().count()