基于计数器值在熊猫中选择序列数据

我要解决的问题涉及一系列数据(类似于时间序列,但实际上更多的是事件序列),发生的事件类型以及根据以下情况重置为零的计数器外部动作(请参阅Raw_Data)。我希望能够在每次计数器重置为零(包括第一计数器= 0行)之间提取出Type数据,这不会以固定间隔(Wanted_Result)发生。在Pandas中有一种简单的方法吗? -目标是在计数器重置时获得实例之间的Type计数(和其他分析)。

我所拥有的:

[![Raw_Data] [1]] [1]

我想要的,尽管是多索引,或者只是另一列具有不同序列唯一标签的列会更干净:

[![Wanted_Data] [2]] [2]

编辑:添加数据文本:

       [2,'B',1],[3,'C',2],[4,'D',3],[5,'A',0],[6,[7,[8,[9,4],[10,5],[11,[12,[13,[14,[15,[16,[17,6],[18,[19,[20,[21,[22,[23,[24,[25,[26,[27,[28,[29,[30,[31,[32,[33,[34,[35,[36,[37,[38,[39,[40,[41,[42,[43,[44,[45,[46,[47,[48,7],[49,0]]```

```Wanted_Data=[[1.0,0.0,5.0,11.0,18.0,21.0,26.0,30.0,34.0,41,49.0,0.0],[2.0,1.0,6.0,12.0,19.0,22.0,27.0,31.0,35.0,42,1,nan,nan],[3.0,2.0,7.0,13.0,20.0,23.0,28.0,32.0,36.0,43,2,[4.0,3.0,8.0,14.0,24.0,29.0,33.0,37.0,44,3,[nan,9.0,4.0,15.0,25.0,38.0,45,4,10.0,16.0,39.0,46,5,17.0,40.0,47,6,48,7,nan]]```


  [1]: https://i.stack.imgur.com/ETy5n.png
  [2]: https://i.stack.imgur.com/azSYE.png
shu545312271 回答:基于计数器值在熊猫中选择序列数据

IIUC:

df = pd.DataFrame({'Sequence':np.arange(1,26),'Type':[*'ABCDACBDDACBADACDBACADBAC'],'Counter':[0,1,2,3,4,5,6,4]})

df['grp'] = df['Counter'].eq(0).cumsum()

df_out = df.set_index(['Counter','grp']).unstack('grp')
df_out = df_out.sort_index(level=1,axis=1)
df_out.columns =  [f'{i}.{j}' for i,j in df_out.columns]
print(df_out)

输出:

         Sequence.1 Type.1  Sequence.2 Type.2  Sequence.3 Type.3  Sequence.4 Type.4  Sequence.5 Type.5
Counter                                                                                               
0               1.0      A         5.0      A        11.0      C        18.0      B        21.0      A
1               2.0      B         6.0      C        12.0      B        19.0      A        22.0      D
2               3.0      C         7.0      B        13.0      A        20.0      C        23.0      B
3               4.0      D         8.0      D        14.0      D         NaN    NaN        24.0      A
4               NaN    NaN         9.0      D        15.0      A         NaN    NaN        25.0      C
5               NaN    NaN        10.0      A        16.0      C         NaN    NaN         NaN    NaN
6               NaN    NaN         NaN    NaN        17.0      D         NaN    NaN         NaN    NaN
本文链接:https://www.f2er.com/3077736.html

大家都在问