在python pandas中查找连续重复元素的数量

舒巴姆乔达里

我有一个数据框:

A.    B.    C.     D
3.    4.    12     15
3.    5.     11.    2
3.    4.     1.      3
5.    4.     1.      4

我想要连续重复元素的计数。

喜欢

Column A
Element 3 = 3 times
Element 5 = 1 times

Column B
Element 4 = 2 times

意味着我只想要连续重复的元素数

贝尼

更新

from itertools import groupby
d = {i:{k: len(list(v)) for k, v in groupby(j)} for i,j in zip(df.columns,df.values.T.tolist())}

d
Out[196]: 
{'A': {3: 3, 5: 1},
 'B': {4: 2, 5: 1},
 'C': {1: 2, 11: 1, 12: 1},
 'D': {2: 1, 3: 1, 4: 1, 15: 1}}

pandas 方法

s=df.melt()
s['key']=s.groupby('variable').value.apply(lambda x : x.diff().ne(0).cumsum())

s.groupby(['variable','key','value']).value.count()
Out[202]: 
variable  key  value
A         1    3        3
          2    5        1
B         1    4        1
          2    5        1
          3    4        2
C         1    12       1
          2    11       1
          3    1        2
D         1    15       1
          2    2        1
          3    3        1
          4    4        1
Name: value, dtype: int64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章