그룹 별 이벤트 시간 차이

Vaishali

다음은 제가 작업중인 거대한 데이터의 단순화 된 버전입니다. 데이터는 시간별로 정렬되어 있습니다.

df = pd.DataFrame({'group':['grp1','grp1','grp1','grp1', 'grp2','grp2','grp2','grp2','grp2'],'event':['foo','bar','foo','bar','foo','bar','bar','foo','bar'], 'time':[10,21,33,54,10,21,56,81,95]})

Qn : 각 그룹의 각 foo / bar 쌍 (bar-foo)에 대한 시간 (지연) 차이를 찾아야합니다. foo / bar가 숫자가 같고 잘 정렬되어 있기 때문에 group1이 쉽게됩니다 (각 foo 뒤에 bar가옵니다). 나는 다음과 같이 할 것이다.

final = df.pivot_table(index = 'group', columns = 'event', values = 'time', aggfunc='sum')
final['delay'] = final['bar'] - final['foo']

grp1    32
grp2    81

위의 결과는 grp1에는 좋지만 grp2의 경우 이벤트 막대가 인덱스 5 및 6에서 반복되므로 인덱스 6의 막대 값을 무시하고 결과를 얻어야합니다.

grp1    32
grp2    25 

주의 사항 : 이벤트는 grp1에서와 같이 정확한 순서로 정렬되어야합니다. bar가 먼저 나타나면 해당 시간이 무시되고 다음 foo에서 시작합니다.

이것에 대한 제안에 감사하겠습니다

Anky

조건을 통해 마스킹을 시도한 다음 피벗을 수행 할 수 있습니다 (설명에 인라인 설명).

c1 = df['event'].eq("foo")          #check if current row is foo
c2 = df['event'].shift(-1).eq("bar") #check if next row is bar
cond = c1&c2                          #chaining c1 and c2
#if cond is True , take next row as True since bar is already below foo per cond
final = (df[cond|cond.shift()].pivot_table(index = 'group', 
        columns = 'event', values = 'time', aggfunc='sum').copy())
final['bar']-final['foo']

group
grp1    32
grp2    25
dtype: int64

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

분기 시간별로 그룹화 된 시작 중지 차이

분류에서Dev

월 및 연도 별 날짜 시간 차이 그룹

분류에서Dev

팬더 그룹 별 합계 차이 시프트 누적 합계

분류에서Dev

두 그룹의 관측치 간의 쌍별 차이

분류에서Dev

로그 이벤트 범주 및 그룹별로 일별 피벗

분류에서Dev

jQuery fullCalendar 시간별 이벤트 endTime

분류에서Dev

요일별 매장 시간이 포함 된 그룹 개체

분류에서Dev

시간별로 그룹화, 데이터가없는 경우 0

분류에서Dev

MySQL : 시간별 그룹화, 데이터가없는 경우 0

분류에서Dev

R 시간 간격 : 샘플이 시간 표시를 초과하는 경우 시간별로 그룹화

분류에서Dev

ID 별 그룹화, 시간별 그룹화 (각 활동의 5 분 이내), R에서 활동의 시차 찾기

분류에서Dev

PHP 그룹 주간 이벤트

분류에서Dev

연속 이벤트 별 Postgres 그룹, 10 분 이상 간격이있을 때 중단

분류에서Dev

그룹 별 누적 시차

분류에서Dev

범주별로 그룹화하여 SQL에서 월별 차이 표시

분류에서Dev

범주별로 그룹화하여 SQL에서 월별 차이 표시

분류에서Dev

Excel 막대 차트에 그룹화 및 개별 레이블 표시

분류에서Dev

팬더 : 그룹별로 차이 설정

분류에서Dev

그룹 별 열의 값 차이

분류에서Dev

R에서 그룹 별 지연 차이

분류에서Dev

그룹 별 두 행의 SQL 차이점

분류에서Dev

그룹 별 SAS 날짜 차이

분류에서Dev

그룹 별 최대 및 최소 차이

분류에서Dev

서로 다른 수준의 데이터별로 그룹 간 차이 집계

분류에서Dev

테이블에 날짜 / 시간 열이 포함 된시기별로 그룹화

분류에서Dev

주문 식별 및 계산 (각 그룹 내 고유 이벤트)

분류에서Dev

연도 및 월별로 이벤트 그룹화

분류에서Dev

GoogleAnalytics-사용자 별 그룹 이벤트

분류에서Dev

Highcharts : 그룹화 된 열 차트-그룹 별 비 NA 시리즈 만 플롯

Related 관련 기사

  1. 1

    분기 시간별로 그룹화 된 시작 중지 차이

  2. 2

    월 및 연도 별 날짜 시간 차이 그룹

  3. 3

    팬더 그룹 별 합계 차이 시프트 누적 합계

  4. 4

    두 그룹의 관측치 간의 쌍별 차이

  5. 5

    로그 이벤트 범주 및 그룹별로 일별 피벗

  6. 6

    jQuery fullCalendar 시간별 이벤트 endTime

  7. 7

    요일별 매장 시간이 포함 된 그룹 개체

  8. 8

    시간별로 그룹화, 데이터가없는 경우 0

  9. 9

    MySQL : 시간별 그룹화, 데이터가없는 경우 0

  10. 10

    R 시간 간격 : 샘플이 시간 표시를 초과하는 경우 시간별로 그룹화

  11. 11

    ID 별 그룹화, 시간별 그룹화 (각 활동의 5 분 이내), R에서 활동의 시차 찾기

  12. 12

    PHP 그룹 주간 이벤트

  13. 13

    연속 이벤트 별 Postgres 그룹, 10 분 이상 간격이있을 때 중단

  14. 14

    그룹 별 누적 시차

  15. 15

    범주별로 그룹화하여 SQL에서 월별 차이 표시

  16. 16

    범주별로 그룹화하여 SQL에서 월별 차이 표시

  17. 17

    Excel 막대 차트에 그룹화 및 개별 레이블 표시

  18. 18

    팬더 : 그룹별로 차이 설정

  19. 19

    그룹 별 열의 값 차이

  20. 20

    R에서 그룹 별 지연 차이

  21. 21

    그룹 별 두 행의 SQL 차이점

  22. 22

    그룹 별 SAS 날짜 차이

  23. 23

    그룹 별 최대 및 최소 차이

  24. 24

    서로 다른 수준의 데이터별로 그룹 간 차이 집계

  25. 25

    테이블에 날짜 / 시간 열이 포함 된시기별로 그룹화

  26. 26

    주문 식별 및 계산 (각 그룹 내 고유 이벤트)

  27. 27

    연도 및 월별로 이벤트 그룹화

  28. 28

    GoogleAnalytics-사용자 별 그룹 이벤트

  29. 29

    Highcharts : 그룹화 된 열 차트-그룹 별 비 NA 시리즈 만 플롯

뜨겁다태그

보관