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'}