Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在出现X之间对数据进行分组_Python_Pandas_Time Series_Grouping_Categorization - Fatal编程技术网

Python:如何在出现X之间对数据进行分组

Python:如何在出现X之间对数据进行分组,python,pandas,time-series,grouping,categorization,Python,Pandas,Time Series,Grouping,Categorization,我已经有了一个按时间排序的数据帧,如下所示: | type | time | | :——- | :——- | | B | t1 | | C | t2 | | A | t3 | | D | t4 | | C | t5 | | B | t6 | | A | t7 | | B | t8 | | D | t9 | | A | t10 | 我希望根据A的出现情况对数据帧进行切分,最终得到以下结果: grou

我已经有了一个按时间排序的数据帧,如下所示:

| type | time |
| :——- | :——- |
| B    | t1   |
| C    | t2   |
| A    | t3   |
| D    | t4   |
| C    | t5   |
| B    | t6   |
| A    | t7   |
| B    | t8   |
| D    | t9   |
| A    | t10  |
我希望根据A的出现情况对数据帧进行切分,最终得到以下结果:

group 1: {B:t1, C:t2}
group 2: {A:t3, D:t4, C:t5, B:t6}
group 3: {A:t7, B:t8, D:t9}
group 4: {A:t10} 

使用lambda函数按助手创建字典
系列
创建比较
类型
A
与累积和按:


非常感谢@耶斯雷尔
f = lambda x: dict(zip(x['type'], x['time']))
df1 = (df.groupby(df['type'].eq('A').cumsum().add(1).rename('group'))
         .apply(f)
         .add_prefix('group ')
         .reset_index(name='new'))
print (df1)

     group                                           new
0  group 1                        {'B': 't1', 'C': 't2'}
1  group 2  {'A': 't3', 'D': 't4', 'C': 't5', 'B': 't6'}
2  group 3             {'A': 't7', 'B': 't8', 'D': 't9'}
3  group 4                                  {'A': 't10'}