您好我有一个pandas数据框,其中包含事件列和其他列。我希望通过id和on group执行一个小组,我希望从所有继续0中取出2个记录我想找出一个继续5 0的模式可能更多但是它必须始终跟随1以及然后识别一组记录,即继续5 0,然后是接下来的1,然后得到中间行(这5个0的0中的0)记录,找出那些0之后的第1个并取出那一行。但对于0s替换,我应该重复5次或更多次,然后从最后5次中间排出。
简而言之: 我想要0和1的集合,条件只取1的上面你发现的继续5 0或更多,如果这个模式是多次,那么采取一个模式获得每个具有0和1的id的两个记录
例如。
import pandas as pd
data={'id':[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],
'name': ['a','b','c','d','e','f','g','h','i','j','k','l','m','n'
,'o','p','q','r','s','t','a1','b1','c1','d1','e1','f1','g1','h1','i1','j1','k1','l1','m1','n1'
,'o1','p1','q1','r1','s1','t1','aa','bb','cc','dd','ee','ff',
'gg','hh','ii','jj','kk','ll','mm','nn'
,'oo','pp','qq','rr','ss','tt','aa1','bb1','cc1','dd1','ee1','ff1',
'gg1','hh1','ii1','jj1','kk1','ll1','mm1','nn1'
,'oo1','pp1','qq1','rr1','ss1','tt1'],
'value':[0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]}
df=pd.DataFrame.from_dict(data)
作为输出,我希望每个id获得2个记录,一个用于0,一个用于1。并且0行应该是5个或更多连续0的中间记录。
预期输出为:
id name value
16 1 q 0
19 1 t 1
64 2 ee1 0
67 2 hh1 1