如何查找在熊猫数据框中出现最多的行项目

Posted

技术标签:

【中文标题】如何查找在熊猫数据框中出现最多的行项目【英文标题】:How to find which row items are appearing most in a pandas dataframe 【发布时间】:2018-07-16 08:08:19 【问题描述】:

我有一个类似这样的数据框:

    a   b   c   d   e   f
  ------------------------
0   0   0   1   1   0   1
1   1   0   1   1   0   0
2   0   0   1   1   0   1
3   1   0   1   0   0   0
4   0   0   1   1   0   1
5   0   1   1   0   0   0
6   1   0   1   0   1   1
7   0   0   1   1   0   1
8   1   0   1   1   1   0
9   0   0   1   1   0   1

如何找到出现次数最多的行和唯一项计数? 这里0 0 1 1 0 1 出现在0,2,4,7,9 行中的次数最多。

我试过apriori algorithm,但如果我的数据很大,它会给我100多个规则。 .NB:我的真实数据不是01。这是模拟数据。

【问题讨论】:

【参考方案1】:

所有列使用groupbysize,索引最大值添加idxmax

out = df.groupby(df.columns.tolist()).size().idxmax()
print (out)
(0, 0, 1, 1, 0, 1)

对于索引值GroupBy.transformmax 值比较:

s = df.groupby(df.columns.tolist())[df.columns[0]].transform('size')
idx = s.index[s == s.max()]
print (idx)
Int64Index([0, 2, 4, 7, 9], dtype='int64')

【讨论】:

如何根据计数逐个显示所有模式? 它只返回前一个模式,如果想使用所有模式使用df = df.drop_duplicates() 有没有办法计算每个模式并像排名一样显示它的计数? 你觉得df.groupby(df.columns.tolist()).size().reset_index(name='count') 吗? 如果两个项目的数量相同怎么办?如何显示两者/全部

以上是关于如何查找在熊猫数据框中出现最多的行项目的主要内容,如果未能解决你的问题,请参考以下文章

Python获取在数据框中出现最多的类别对

从熊猫数据框中删除相似的行

排列并查找列表中出现次数最多的项目

js查找数组中出现次数最多的元素

Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24

JS中如何查找出现次数最多的字节