Вот пример строки, которая у меня есть в моем фрейме данных:
{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "3652b5d7-55b8-4bee-82b6-ab32d5543352",
"timestamp" : "1559403699899",
"endFlow" : "true"
}
Я делаю groupby по 'sessionId', что даст мне такую группу:
Row 1:
{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "usecaseId1",
"timestamp" : "1559403699899",
"endFlow" : "false"
},
Row 2:
{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "usecaseId1",
"timestamp" : "1559403699899",
"endFlow" : "false"
},
Row 3:
{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "usecaseId2",
"timestamp" : "1559403699899",
"endFlow" : "true"
},
Row 4:
{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "usecaseId1",
"timestamp" : "1559403699899",
"endFlow" : "false"
},
Row 5:
{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "usecaseId1",
"timestamp" : "1559403699899",
"endFlow" : "true"
}
Если взять в качестве примера приведенную выше группу, то здесь я хочу добиться того, чтобы после группировки фрейма данных по 'sessionId' я захотел перебрать последовательные строки с одинаковым 'useCaseId' (Таким образом, из вышеприведенной группы будет три наборапоследовательные строки, по которым я хочу выполнить цикл,
Row1-Row2, Row3, Row4-Row5 )
И из каждого из указанных выше последовательных наборов строк ( Row1-Row2, Row3, Row4-Row5 (где каждый набор имеет один и тот же useCaseId) ,
Я хочу найти число наборов, значение конечного потока строк в которых составляет только false .
Итак, из приведенного выше примера группы ожидаемый результат выглядит следующим образом:
1 (Так как Row1-Row2 с тем же useCaseId 'usecaseId1' имеет только конечный поток 'false', тогда как 'Row3' и 'Row4-Row5 'имеет конечный поток' true ')
Как мне этого добиться?
Наверхдаты:
df.head ():
sessionId useCaseId timestamp endFlow
0 sessionId1 useCaseId1 1559403699899 false
1 sessionId1 useCaseId1 1559403699899 false
2 sessionId1 useCaseId2 1559403699899 true
3 sessionId1 useCaseId1 1559403699899 false
4 sessionId1 useCaseId1 1559403699899 true
Что я пробовал:
Я пробовал группироватьфрейм данных с помощью 'sessionId' и 'usecaseId', но это не сработает, потому что он сгруппирует фрейм данных однозначно с 'usecaseId', а это не то, что я хотел; я хочу перебрать последовательные строки после группировки по 'sessionId' с тем же 'usecaseId ', а затем подсчитать последовательные строки с тем же' useCaseId ', имеющим' endFlow ', только как' false '.
Ожидаемый результат: после группировки по 'sessionId' я хочу посчитать количество последовательных строк с тем же 'useCaseId', имеющим 'endFlow', только как 'false'
из приведенного выше примера группы ожидаемый результат выглядит следующим образом: 1 (Так как Row1-Row2 с тем же useCaseId 'usecaseId1' имеет только конечный поток 'ложь', в то время как 'Row3' и 'Row4-Row5' имеет конечный поток 'истина'')