본문 바로가기
파이썬

파이썬 날짜 시간 열을 가장 가까운 분기 시간으로 반올림하는 방법

by º기록 2020. 11. 18.
반응형

Python pandas 데이터 프레임에 데이터 파일을로드했습니다. 2015-07-18 13 : 53 : 33.280 형식의 datetime 열이 있습니다.

내가해야 할 일은 가장 가까운 1/4 시간으로 반올림하는 새 열을 만드는 것입니다. 따라서 위 날짜는 2015-07-18 13 : 45 : 00.000 로 반올림됩니다.


 

해결 방법

 

시리즈가 datetime 객체로 구성되어 있다고 가정하면 Series.apply 를 사용해야합니다. 예 -

import datetime
df['<column>'] = df['<column>'].apply(lambda dt: datetime.datetime(dt.year, dt.month, dt.day, dt.hour,15*(dt.minute // 15)))

위의 예는 항상 이전 분기 시간으로 반올림합니다 (바닥 함수와 유사한 동작).

수정

올바른 분기 시간으로 반올림하려면 (에서와 같이 이전 분기에서 30 초가 지난 7 분이면 다음 분기를 표시). 아래 예를 사용할 수 있습니다.

import datetime
df['<column>'] = df['<column>'].apply(lambda dt: datetime.datetime(dt.year, dt.month, dt.day, dt.hour,15*round((float(dt.minute) + float(dt.second)/60) / 15)))

위의 내용은 최근 초만 고려합니다. 밀리 초 / 마이크로 초를 고려하고 싶다면 위의 방정식에 다음과 같이 추가 할 수 있습니다.- (float (dt.minute) + float (dt.second) / 60 + float (dt.microsecond) / 60000000)

 

참조 페이지 https://stackoverflow.com/questions/32344533

 

 

반응형

댓글