Как выбрать только столбцы с уникальными значениями меньше числа - PullRequest
1 голос
/ 24 июня 2019

Я хочу посчитать количество уникальных значений в каждом столбце и выбрать только те столбцы, которые имеют менее 32 уникальных значений.

Я пытался использовать df.filter(nunique<32) и

df[[ c for df.columns in df if c in c.nunique<32]] 

но поскольку nunique - это метод, а не функция, они не работают. Мысль len (set () будет работать и попытался

df.apply(lambda x : len(set(x))

но не работает так же. Есть идеи, пожалуйста? заранее спасибо!

1 Ответ

4 голосов
/ 24 июня 2019

nunique может быть вызвано на весь DataFrame (вы должны вызвать его).Затем можно отфильтровать столбцы с помощью loc:

df.loc[:, df.nunique() < 32]

Пример минимальной проверки

df = pd.DataFrame({'A': list('abbcde'), 'B': list('ababab')})
df
   A  B
0  a  a
1  b  b
2  b  a
3  c  b
4  d  a
5  e  b

df.nunique()
A    5
B    2
dtype: int64

df.loc[:, df.nunique() < 3]
   B
0  a
1  b
2  a
3  b
4  a
5  b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...