python - 在整个数据框中查找最不频繁的值
问题描述
我的数据框是这样的
> 93 40 73 41 115 74 59 98 76 109 43 44
105 119 56 62 69 51 50 104 91 78 77 75
119 61 106 105 102 75 43 51 60 114 91 83
它有 8000 行和 12 列
我想在整个数据框中找到频率最低的值(不仅在列中)。
我尝试将此数据帧转换为 numpy 数组并使用for
循环来计算数字,然后返回最少的计数,但它不是非常理想。我搜索了是否有任何其他方法,但找不到。
我只发现scipy.stats.mode返回最频繁的数字。
还有其他方法吗?
解决方案
你可以stack
采取value_counts
:
df.stack().value_counts().index[-1]
# 69
value_counts
按频率排序,所以你可以只取最后一个,尽管在这个例子中很多只出现一次。69
恰好是最后一个。
推荐阅读
- java - 使用 Hibernate 动态更新特定列的查询
- reactjs - 我的数据在减速器中,但我无法进入 mapStateToProps
- javascript - Firebase 存储安全规则,为特定用户提供访问权限
- c# - Process.WaitForExit 挂起 - 但我只重定向标准输入?
- firebase - 使用 firestore 在本地运行 firebase 功能
- java - 使用 Hibernate 删除对象的问题
- python - 我不知道为什么我的 if 语句不起作用
- python - 为什么这个 `ctypes` 包装函数的返回值是 `c_long(0)` 而不是 `c_long(3)`?
- python - 设置数据帧的值异常缓慢但在副本上快速
- angular - 在我的 NestJs 中间件设置中未收到任何请求信息