在多列中搜索最常见的值

时间:2020-02-18 09:49:36

标签: pandas

请问这个问题的基本性质,但是我已经花了几个小时寻找答案,而且它们似乎都使我需要的东西变得太复杂了。

我有一个如下数据框:-

max-height

我想做的是搜索所有的'food_item_ *'列(因此在本例中为3),并返回给我一个最常见的值,例如在所有3列中均为“咖啡”。

有人可以推荐最好的方法吗?

非常感谢

md

2 个答案:

答案 0 :(得分:3)

使用DataFrame.filter,通过DataFrame.stack进行整形,然后使用Series.mode,最后使用Series.iat按位置选择第一个值:

$("#date-input").datepicker({
  numberOfMonths: 2
});

另一个想法是使用Series.value_counts并选择索引的第一个值:

a = df.filter(like='food_item_').stack().mode().iat[0]
print (a)
coffee

答案 1 :(得分:2)

您也可以melt的列和value_counts

print (df.melt(id_vars="id", value_vars=df.columns[1:])["value"].value_counts())

coffee      5
bread       2
nuts        1
potatoes    1
cake        1
beer        1
fish        1
相关问题