각 행에 대해 다른 열의 마지막 유효한 인덱스 값을 얻는 방법

tgtt

팬더에 다음 표가 있습니다.

  • view_time: 사용자가 광고를 본 시간
  • click_time: 사용자가 광고를 클릭 한 시간 (클릭 한 경우)
  • ad_id: 광고 식별자
>>> df
     view_time  click_time  username  ad_id
250  07:00      07:05       a         abc
251  07:10                  a         def
252  07:20      07:35       a         ghi
253  07:30      07:41       a         jkl
254  07:40                  a         mno
255  07:50                  a         pqr

각 시점 ( view_time) 에 대해 마지막으로 클릭 한 광고를 표시하는 열을 추가하고 싶습니다 . 참고 click_time다음보다 더 큰 가치가있을 수 있습니다 view_time.

  • last_clicked_ad: 현재 클릭 된 마지막 광고 view_time
     view_time  click_time  username  ad_id    last_clicked_ad
250  07:00      07:05       a         abc 
251  07:10                  a         def      abc
252  07:20      07:35       a         ghi      abc
253  07:30      07:41       a         jkl      abc
254  07:40                  a         mno      ghi
255  07:50                  a         pqr      jkl

나는 다음과 같은 것을 시도했다.

>>> i = df[['click_time']].apply(pd.Series.last_valid_index)
>>> df.loc[i, 'ad_id']
253    jkl
Name: ad_id, dtype: object

Null이 아닌 ad_id마지막 행 의 값을 제공 click_time합니다.

그러나 view_time전체 테이블 대신 각 시점 ( ) 에 대해이 논리를 사용하고 싶습니다 .

단순화 된 예를 재현하려면 :

>>> df = pd.DataFrame({'view_time': ['07:00','07:10','07:20','07:30','07:40','07:50'],
              'click_time': ['07:05', '', '07:35', '07:41', '', ''],
              'username': ['a','a','a','a','a','a'],
              'ad_id': ['abc', 'def','ghi','jkl','mno','pqr']
             })
>>> df.index += 250
>>> df['view_time'] = pd.to_datetime(df['view_time'])
>>> df['click_time'] = pd.to_datetime(df['click_time'])
이스 르엘

사용 merge_asof:

df2 = (df[['click_time','username', 'ad_id']]
              .dropna(subset=['click_time'])
              .rename(columns={'ad_id':'last_clicked_ad', 'click_time':'new_time'}))

df = (pd.merge_asof(df, df2, left_on='view_time', right_on='new_time', by='username')
        .drop('new_time', 1))
print (df)
            view_time          click_time username ad_id last_clicked_ad
0 2019-11-08 07:00:00 2019-11-08 07:05:00        a   abc             NaN
1 2019-11-08 07:10:00                 NaT        a   def             abc
2 2019-11-08 07:20:00 2019-11-08 07:35:00        a   ghi             abc
3 2019-11-08 07:30:00 2019-11-08 07:41:00        a   jkl             abc
4 2019-11-08 07:40:00                 NaT        a   mno             ghi
5 2019-11-08 07:50:00                 NaT        a   pqr             jkl

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 열 R의 각 수준에 대한 열의 최대 값 인덱스를 얻는 방법

분류에서Dev

다른 열의 각 값에 대해 한 열의 최대 값을 얻는 방법은 무엇입니까?

분류에서Dev

HDF5 테이블의 열에서 각 고유 값에 대한 마지막 타임 스탬프를 찾는 효율적인 방법

분류에서Dev

다른 열의 값 집합에 대한 인덱스 열을 만드는 방법

분류에서Dev

다차원 배열에서 각 인덱스의 최대 값을 얻는 방법-JavaScript

분류에서Dev

다른 열의 각 행에 대해 모든 열 값을 반복하는 방법

분류에서Dev

PHP의 다른 테이블에 대한 외래 키로 마지막 자동 증가 값을 얻는 방법

분류에서Dev

목록의 각 문자열에 대한 문자열의 마지막 문자 값을 찾는 방법>

분류에서Dev

R에서 값 (각 행에 대해)이있는 마지막 열을 찾는 방법은 무엇입니까?

분류에서Dev

LinQ : 각각의 다른 요소에 대해 마지막 또는 더 높은 값을 반환합니다.

분류에서Dev

CGPath의 CGContextSetLineDash 이후에 생성 된 각 대시 라인의 마지막 지점을 얻는 방법

분류에서Dev

다른 항목에 대한 한 달의 마지막 날을 얻는 방법은 무엇입니까? -SQL

분류에서Dev

x의 수가 다른 각 막대에 대해 동일한 너비를 얻기 위해 막대 그림을 세로로 정렬하는 방법

분류에서Dev

자바 : 다른 열의 고유 한 각각의 값에 대한 하나 개의 컬럼의 CSV 및 합계 값을 반복하는 것이 가장 효율적인 방법

분류에서Dev

각 행의 마지막 색인을 얻는 방법은 무엇입니까?

분류에서Dev

MS Excel에서 다른 열의 각 고유 값에 대해 한 열의 고유 값을 계산하는 방법은 무엇입니까?

분류에서Dev

단일 행을 여러 행으로 분할하는 방법, 각 행에는 Excel 표의 서로 다른 열에 대한 고유 한 셀 값이 있습니다.

분류에서Dev

SQL- 각 계정에 대한 마지막 기록을 얻는 방법

분류에서Dev

각 행의 최대 값이 특정 임계 값보다 작은 경우 numpy 배열의 마지막 열을 수정하는 방법은 무엇입니까?

분류에서Dev

rethinkdb에서 배열의 각 값에 대해 조인을 수행하는 방법

분류에서Dev

Postgresql에서 한 행의 첫 번째 값과 마지막 값을 얻는 방법

분류에서Dev

src 값을 오디오 파일 배열의 각 인덱스에 대해 지시문 범위 변수에 동적으로 바인딩하는 방법

분류에서Dev

SQL의 각 행에 대해 동일한 값을 가진 열 수를 얻는 방법

분류에서Dev

클래스의 각 인스턴스에 대해 다른 간격 값을 설정하는 방법

분류에서Dev

열 값이 데이터 테이블의 각 행에 대해 다른 두 범위 내에 있는지 확인하는 방법

분류에서Dev

다른 열의 값에 대해 텍스트 파일의 한 열에서 값을 가져 오는 방법

분류에서Dev

다른 테이블의 다른 열에 대해 각 행의 테이블 열을 검색하는 방법

분류에서Dev

다른 테이블의 다른 열에 대해 각 행의 테이블 열을 검색하는 방법

분류에서Dev

한 계열을 다른 계열에 할당하거나 인덱스가 교차하지 않는 병합하고 흥미로운 지수에 대한 계열 중 하나의 값을 유지하는 방법

Related 관련 기사

  1. 1

    다른 열 R의 각 수준에 대한 열의 최대 값 인덱스를 얻는 방법

  2. 2

    다른 열의 각 값에 대해 한 열의 최대 값을 얻는 방법은 무엇입니까?

  3. 3

    HDF5 테이블의 열에서 각 고유 값에 대한 마지막 타임 스탬프를 찾는 효율적인 방법

  4. 4

    다른 열의 값 집합에 대한 인덱스 열을 만드는 방법

  5. 5

    다차원 배열에서 각 인덱스의 최대 값을 얻는 방법-JavaScript

  6. 6

    다른 열의 각 행에 대해 모든 열 값을 반복하는 방법

  7. 7

    PHP의 다른 테이블에 대한 외래 키로 마지막 자동 증가 값을 얻는 방법

  8. 8

    목록의 각 문자열에 대한 문자열의 마지막 문자 값을 찾는 방법>

  9. 9

    R에서 값 (각 행에 대해)이있는 마지막 열을 찾는 방법은 무엇입니까?

  10. 10

    LinQ : 각각의 다른 요소에 대해 마지막 또는 더 높은 값을 반환합니다.

  11. 11

    CGPath의 CGContextSetLineDash 이후에 생성 된 각 대시 라인의 마지막 지점을 얻는 방법

  12. 12

    다른 항목에 대한 한 달의 마지막 날을 얻는 방법은 무엇입니까? -SQL

  13. 13

    x의 수가 다른 각 막대에 대해 동일한 너비를 얻기 위해 막대 그림을 세로로 정렬하는 방법

  14. 14

    자바 : 다른 열의 고유 한 각각의 값에 대한 하나 개의 컬럼의 CSV 및 합계 값을 반복하는 것이 가장 효율적인 방법

  15. 15

    각 행의 마지막 색인을 얻는 방법은 무엇입니까?

  16. 16

    MS Excel에서 다른 열의 각 고유 값에 대해 한 열의 고유 값을 계산하는 방법은 무엇입니까?

  17. 17

    단일 행을 여러 행으로 분할하는 방법, 각 행에는 Excel 표의 서로 다른 열에 대한 고유 한 셀 값이 있습니다.

  18. 18

    SQL- 각 계정에 대한 마지막 기록을 얻는 방법

  19. 19

    각 행의 최대 값이 특정 임계 값보다 작은 경우 numpy 배열의 마지막 열을 수정하는 방법은 무엇입니까?

  20. 20

    rethinkdb에서 배열의 각 값에 대해 조인을 수행하는 방법

  21. 21

    Postgresql에서 한 행의 첫 번째 값과 마지막 값을 얻는 방법

  22. 22

    src 값을 오디오 파일 배열의 각 인덱스에 대해 지시문 범위 변수에 동적으로 바인딩하는 방법

  23. 23

    SQL의 각 행에 대해 동일한 값을 가진 열 수를 얻는 방법

  24. 24

    클래스의 각 인스턴스에 대해 다른 간격 값을 설정하는 방법

  25. 25

    열 값이 데이터 테이블의 각 행에 대해 다른 두 범위 내에 있는지 확인하는 방법

  26. 26

    다른 열의 값에 대해 텍스트 파일의 한 열에서 값을 가져 오는 방법

  27. 27

    다른 테이블의 다른 열에 대해 각 행의 테이블 열을 검색하는 방법

  28. 28

    다른 테이블의 다른 열에 대해 각 행의 테이블 열을 검색하는 방법

  29. 29

    한 계열을 다른 계열에 할당하거나 인덱스가 교차하지 않는 병합하고 흥미로운 지수에 대한 계열 중 하나의 값을 유지하는 방법

뜨겁다태그

보관