【问题标题】:pandas, comparison within lambda大熊猫,lambda内的比较
【发布时间】:2018-12-17 15:59:42
【问题描述】:

我有一个函数,它返回具有多个唯一值

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

我想将其更改为返回唯一值的数量

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

但这不起作用。

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

【问题讨论】:

  • 您确实需要一个带有小数据框的工作示例来更好地说明您的问题。
  • @PaulH 确实如此,很多时候都不见了 :-)
  • 试试cols_unique = list(df[cols].loc[:, df[cols].apply(lambda x: x.nunique() &lt;= len(df)//2])) 吗?
  • 感谢@Chris A,但这也不起作用

标签: python pandas lambda


【解决方案1】:

你可以试试 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)])

【讨论】:

  • 谢谢,这些工作的语法虽然事实证明我的所有列都符合标准,所以我用较低的阈值 (
猜你喜欢
  • 2017-12-23
  • 2017-12-14
  • 2014-03-31
  • 2016-05-04
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多