pandas Timedelta와 DateOffset의 차이

2626 단어 pandaspythonpandas

배경

pandas에서 날짜 연산을 하려면 Timedelta와 DateOffset 클래스가 필요하다.
그런데 두 클래스는 무엇이 다를까?

그동안 아무 생각없이 생각나는 것부터 썼었는데,
날짜 연산에 대해 설명할 일이 생겼다.

역시 뭔가를 설명해야 할 때, 가장 깊게 알아보는 것 같다..

차이점

몇 개의 링크를 타고 들어가다가 마음에 드는 설명을 발견했다.

DateOffset respect calendar arithmetic
Timedelta respects absolute time arithmetic

즉, DateOffset실제 시간 개념을 사용하기 때문에 써머 타임 등의 이벤트가 반영되지만,
Timedelta절대 시간 개념을 사용하므로 이론상의 날짜 연산을 칼같이 해낸다.

차이 예시

>>>ts = pd.Timestamp('2020-3-29 01:00:00', tz='Europe/Helsinki')
>>>ts + pd.Timedelta(days=1)
Timestamp('2020-03-30 02:00:00+0300', tz='Europe/Helsinki')
>>>ts + pd.DateOffset(days=1)
Timestamp('2020-03-30 01:00:00+0300', tz='Europe/Helsinki')

결론

그런데 한국은 써머 타임도 없고..
Asia/Seoul 기준이라면 두 클래스 중 그냥 생각나는 것을 쓰자

다만, DateOffset은 months, years 파라미터 지정이 가능하다는 장점이 있다
Timedelta는 months, years 지정 불가능!

좋은 웹페이지 즐겨찾기