获取分类变量的类别列表 (Python Pandas)
Get a list of categories of categorical variable (Python Pandas)
我有一个 pandas DataFrame,其中有一列表示分类变量。我怎样才能得到类别列表?我在该列上尝试了 .values,但这没有 return 独特的水平。
谢谢!
我认为需要 Series.cat.categories
or unique
:
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]
尝试执行以下代码。
List_Of_Categories_In_Column=list(df['Categorical Column Name'].value_counts().index)
您也可以使用 value_counts()
,但只有当您将它与列名一起使用时才有效,您还可以通过列名获得每个类别的计数。
示例:
dataframe['Columnn name'].value_counts()
或者,如果您想要变量中类别的总数,您可以这样做:
dataframe['Columnn name'].value_counts().count()
df.column name.value_counts() # 查看一列中每个类别的值总数
df.column name.value_counts().index # 仅查看类别名称
df.column name .value_counts().count() #查看一列有多少个类别(只有数字)
这对我来说很有用,可以将类别检索为数组
cat_arr = numpy.array(pd.Categorical(dataframe['col_name']).categories)
我有一个 pandas DataFrame,其中有一列表示分类变量。我怎样才能得到类别列表?我在该列上尝试了 .values,但这没有 return 独特的水平。
谢谢!
我认为需要 Series.cat.categories
or unique
:
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]
尝试执行以下代码。
List_Of_Categories_In_Column=list(df['Categorical Column Name'].value_counts().index)
您也可以使用 value_counts()
,但只有当您将它与列名一起使用时才有效,您还可以通过列名获得每个类别的计数。
示例:
dataframe['Columnn name'].value_counts()
或者,如果您想要变量中类别的总数,您可以这样做:
dataframe['Columnn name'].value_counts().count()
df.column name.value_counts() # 查看一列中每个类别的值总数
df.column name.value_counts().index # 仅查看类别名称
df.column name .value_counts().count() #查看一列有多少个类别(只有数字)
这对我来说很有用,可以将类别检索为数组
cat_arr = numpy.array(pd.Categorical(dataframe['col_name']).categories)