Цикл Python через элементы группы - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть объект dataframe в следующем формате:

    _id      botId   id   sessionId    timestamp      intentStatus  
0   5ba2a04   tony  9336  asdg23eas  1537385724842     NotHandled  
1   5babb04   tony  0434  bbdg23eas  1537385722365      Handled
2   6ba2a04   tony  7336  bbdg23eas  1537385932445     NotHandled  
3   7babb04   tony  0454  asdg23eas  1537385038234      Handled

Я хочу сгруппировать указанный выше кадр данных по sessionId, а затем найти разницу во времени последней отметки времени каждого элемента и отметки времени первого элемента.До сих пор я был в состоянии сделать это много:

    groupBySession = df.groupby('sessionId')
    for name, group in groupBySession:
        group = group.reset_index(drop=True)

Проблема с вышеупомянутым подходом состоит в том, что я не могу зацикливаться в отдельных созданных группах, потому что индекс не сбрасывается.Из приведенного выше кода я получаю группы в следующем формате:

Первая группа

     _id        botId   id  sessionId   timestamp       intentStatus  
  0 5ba2a04     tony   9336 asdg23eas  1537385724842     NotHandled
  1 7babb04     tony   0454 asdg23eas  1537385724842     NotHandled  

Вторая группа

     _id        botId   id  sessionId   timestamp       intentStatus  
  0 5babb04     tony   0434 bbdg23eas  1537385722365      Handled
  1 6ba2a04     tony   7336 bbdg23eas  1537385932445     NotHandled   

Если вы заметили, индекс заменяется и начинается с 0. Но, когда я пытаюсь напечатать первый элемент первого элемента второго элемента как

print(group[0])    

, я получаю следующееошибка:

KeyError: 0  

Есть ли что-то, что я делаю неправильно или отсутствует?И есть ли лучший подход для реализации этого?

1 Ответ

0 голосов
/ 15 июля 2019

Для итерации по группам, а затем по отдельным строкам каждой группы:

for name, group in groupBySession:
   for index, row in group.iterrows():
       row['whtevr col']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...