如何使用一行代码查看所有分类列及其信息?

问题描述 投票:0回答:2

而不是逐列检查唯一的分类列信息,有一个快速的方法吗?

df.columnA.unique()
df.columnB.unique()

如果我想检查超过100的列,我上面输入的代码不经济。

python pandas
2个回答
1
投票

通过pd.DataFrame.select_dtypes选择分类列。然后使用pd.Series.cat.categories

cat_cols = df.select_dtypes(include='category').columns
res = {col: df[col].cat.categories for col in cat_cols}

这假设所有类别都用于任何给定的系列。如果不是这种情况,您可以使用pd.Series.unique

res = {col: df[col].unique() for col in cat_cols}

行为的差异是documented

注意:unique()的结果并不总是与Series.cat.categories相同,因为Series.unique()有几个保证,即它按照外观的顺序返回类别,并且它只包含实际存在的值。


0
投票
for col in df.columns:
if df[col].dtype == 'object':
    print('\nColumn Name:', col,)
    print(df[col].value_counts())

我自己找到了解决方案......

© www.soinside.com 2019 - 2024. All rights reserved.