вместо проверки уникальной категориальной информации столбца столбец за столбцом, есть ли быстрый способ сделать это?
df.columnA.unique() df.columnB.unique()
Если я хочу проверить столбцы с более чем 100, код, который я ввожу выше, не экономичен.
for col in df.columns: if df[col].dtype == 'object': print('\nColumn Name:', col,) print(df[col].value_counts())
Я сам нашел решение ...
Выберите Категориальные столбцы с помощью pd.DataFrame.select_dtypes. Затем используйте pd.Series.cat.categories:
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:
pd.Series.unique
res = {col: df[col].unique() for col in cat_cols}
Разница в поведении задокументирована :
Примечание : Результат unique() не всегда совпадает с Series.cat.categories, потому что Series.unique() имеет пару гарантирует, а именно, что он возвращает категории в порядке внешний вид, и он включает в себя только те значения, которые действительно присутствуют.
unique()
Series.cat.categories
Series.unique()