pandas - 在多个列中搜索最常见的值
问题描述
请原谅这个问题的基本性质,但我已经搜索了几个小时来寻找答案,它们似乎都使我需要的东西过于复杂。
我有一个如下的数据框: -
id food_item_1 food_item_2 food_item_3
1 nuts bread coffee
2 potatoes coffee cake
3 fish beer coffee
4 bread coffee coffee
我想要做的是搜索所有的“food_item_*”列(所以在这种情况下有3个)并返回给我一个最常见的值,例如所有3列中的“咖啡”。
有人可以推荐最好的方法吗?
非常感谢
MD
解决方案
使用DataFrame.filter
,重塑DataFrame.stack
,然后使用Series.mode
,最后按位置选择第一个值Series.iat
:
a = df.filter(like='food_item_').stack().mode().iat[0]
print (a)
coffee
另一个想法是Series.value_counts
选择索引的第一个值:
a = df.filter(like='food_item_').stack().value_counts().index[0]
推荐阅读
- python - 将重量传感器数据获取到 csv 文件时出现问题
- c++ - 如何创建多文件 C++ 项目
- reactjs - React-Native 组件willunmont - 正确使用
- javascript - 未能实现 st_distance_sphere
- javascript - 使用 Jenkins 进行端到端测试的正确方法
- vue.js - vue-router — 未捕获(承诺)错误:通过导航守卫从“/login”重定向到“/”
- unity3d - GameObject.Find() 的替代品;
- python - 通过 def 函数运行模型
- javascript - 创建、编辑或删除新行后表格不更新
- javascript - 如何在不加载大量数据的情况下在 mongoDB 上显示大量评论?页面会起作用吗?