我有一个类似这样的数据框:
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:我的真实数据不是0
和1
。这是模拟数据。
答案 0 :(得分:2)
将groupby
用于所有带有size
的列,并按最大值添加索引idxmax
:
out = df.groupby(df.columns.tolist()).size().idxmax()
print (out)
(0, 0, 1, 1, 0, 1)
对于索引值GroupBy.transform
和比较值max
:
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')