我有一个数据框:
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
我只希望计算连续重复的元素
答案 0 :(得分:1)
更新
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
答案 1 :(得分:0)
要获取列A,
X
类似地,您可以将其用于其他列。