группа данных панд по следующему вхождению значения столбца - PullRequest
0 голосов
/ 12 сентября 2018

Ниже мой фрейм данных

     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.мой фрейм данных должен выглядеть примерно так, если я хочу разделить на "телефон" как значение:

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

1 Ответ

0 голосов
/ 12 сентября 2018

Используйте словарь для переменного числа связанных переменных. Здесь вы можете комбинировать с GroupBy + cumsum:

d = dict(tuple(df.groupby(df['msg'].eq('phone').cumsum())))

Затем получите доступ к вашим фреймам данных через d[1], d[2], ..., d[n].

Результат:

{1:  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:  contactstart
 3  INFO:  2018-09-12  16:10:43:  view.py:    contactend
 4  INFO:  2018-09-12  16:11:36:  view.py:      appstart
 5  INFO:  2018-09-12  16:11:36:  view.py:     busystart
 6  INFO:  2018-09-12  16:12:08:  view.py:       busyend
 7  INFO:  2018-09-12  16:12:08:  view.py:    contactend
 8  INFO:  2018-09-12  16:12:08:  view.py:        append,

 2:  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:  contactend}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...