首页 > 解决方案 > 在多个列中搜索最常见的值

问题描述

请原谅这个问题的基本性质,但我已经搜索了几个小时来寻找答案,它们似乎都使我需要的东西过于复杂。

我有一个如下的数据框: -

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

标签: pandas

解决方案


使用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]

推荐阅读