熊猫,lambda中的比较

时间:2018-12-17 15:59:42

标签: python pandas lambda

我有一个函数,该函数返回具有许多唯一值<= 100的pandas数据框列的名称:

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

我想更改它,以返回唯一值小于等于值总数的50%的列名,我的尝试是:

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

但这不起作用。

如何在lambda函数中进行比较?

1 个答案:

答案 0 :(得分:2)

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)])