Разделить DataFrame по группам по порядку - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть DataFrame с некоторыми измерениями и один столбец для положения датчика (L, C, R). Я разделил мои данные на 3 меньших кадра данных по положению датчика, но проблема в том, что я получил данные кадра не в правильном порядке. Мой DataFrame:

   t  position     x   y   z

0  0     L        ………………….
1  0.1   L        ………………….
2  0.2   L        ………………….
3  0     C        ………………….
4  0.1   C        ………………….
5  0.2   C        ………………….
6  0     R        ………………….
7  0.1   R        ………………….
8  0.2   R        ………………….

Ожидаемый:

DF1 for L & DF2 for C & DF3 for R

Получено:

  DF1 for C & DF2 for L & DF3 for R

Так что я предполагаю, что сгруппированные изменяют порядок разделенных кадров данных по алфавиту, а не по их появлению в Основной DataFrame. У вас есть идея, как получить правильный порядок (порядок по внешнему виду в данных)?

Я использовал разбивку по группам, что было упомянуто в обсуждении здесь:

def split(frame, group):
gb = frame.groupby(group)
return [gb.get_group(x).reset_index(level=0, drop=True) for x in gb.groups

1 Ответ

1 голос
/ 17 апреля 2020

Я нашел решение, но не такое элегантное. Датафрейм будет разбит по маскам, а не по группам. Маски следует наносить в нужном порядке.

ind_l = df['position']=='L'
DF1 = df[ind_l].reset_index(drop=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...