панды, сравнение в лямбде - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть функция, которая возвращает имена столбцов pandas dataframe, которые имеют ряд уникальных значений <= 100: </p>

cols_unique = list(df[cols].loc[:, df[cols].apply(lambda x: x.nunique()) <= 100])

Я хотел бы изменить это, чтобы возвращать имена столбцов, в которыхчисло уникальных значений составляет <= 50% от общего количества значений, моя попытка: </p>

cols_unique = list(df[cols].loc[:, df[cols].apply(lambda x: x.nunique() <= x.count()/2]))

Но это не работает.

Как сделать сравнение в лямбда-выражениифункционировать?

1 Ответ

0 голосов
/ 17 декабря 2018

IIUC вы можете попробовать:

cols_unique = list(df[cols].loc[:, df[cols].apply(lambda x: x.nunique() <= len(df) / 2)])

Если вы открыты для альтернативы, которая не использует функцию lambda, вы можете попробовать:

 list(cols[df[cols].nunique().le(len(df) // 2)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...