群里一朋友发了一个如上图的问题,解决方法如下
data = {'a':[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2],'b':[1,2,3,4,5,8,9,10,1,2,3,6,7,8,9,12,13]}
df = pd.DataFrame(data)
for name,group in df.groupby('a'):
group['c'] = ((group['b'].shift(1).fillna(0) + 1).astype(int) != group['b']).cumsum()
# print(group)
print(group['c'].value_counts()) #按value值出现最多的,即问题1的答案,value值最大的,即问题2的答案。