以下是我的数据框
info date time file msg
0 INFO: 2018-09-12 16:10:10: view.py: phone
1 INFO: 2018-09-12 16:10:10: view.py: asdasd
2 INFO: 2018-09-12 16:10:43: view.py: contact start
3 INFO: 2018-09-12 16:10:43: view.py: contact end
4 INFO: 2018-09-12 16:11:36: view.py: app start
5 INFO: 2018-09-12 16:11:36: view.py: busy start
6 INFO: 2018-09-12 16:12:08: view.py: busy end
7 INFO: 2018-09-12 16:12:08: view.py: contact end
8 INFO: 2018-09-12 16:12:08: view.py: app end
9 INFO: 2018-09-12 16:12:08: view.py: phone
7 INFO: 2018-09-12 16:12:08: view.py: contact end
我想根据msg
列中的值将此数据帧拆分为多个数据帧。如果我想将“phone”拆分为值,我的数据框应该看起来像这样:
DF1:
info date time file msg
0 INFO: 2018-09-12 16:10:10: view.py: phone
1 INFO: 2018-09-12 16:10:10: view.py: asdasd
2 INFO: 2018-09-12 16:10:43: view.py: contact start
3 INFO: 2018-09-12 16:10:43: view.py: contact end
4 INFO: 2018-09-12 16:11:36: view.py: app start
5 INFO: 2018-09-12 16:11:36: view.py: busy start
6 INFO: 2018-09-12 16:12:08: view.py: busy end
7 INFO: 2018-09-12 16:12:08: view.py: contact end
8 INFO: 2018-09-12 16:12:08: view.py: app end
DF2:
info date time file msg
9 INFO: 2018-09-12 16:12:08: view.py: phone
7 INFO: 2018-09-12 16:12:08: view.py: contact end
使用字典表示可变数量的相关变量。在这里你可以结合GroupBy
+ cumsum
:
d = dict(tuple(df.groupby(df['msg'].eq('phone').cumsum())))
然后通过qazxsw poi,qazxsw poi,...,qazxsw poi访问您的数据框。
结果:
d[1]