Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – datetime.date 객체로 구성된 numpy 배열 반환하는 방법

Python datetime.date 객체로 구성된 numpy 배열을 반환하려면 Pandas의 DatetimeIndex.date 속성을 사용하면 됩니다. 이 속성은 타임스탬프(Timestamp)에서 시간대(timezone) 정보를 제외한 날짜 부분만 추출하여 numpy 배열 형태로 반환해 줍니다.

라이브러리 임포트

먼저 필요한 라이브러리를 불러옵니다.

import pandas as pd

DatetimeIndex 생성

기간(periods)을 3으로 설정하고, 빈도(freq)는 나노초(ns) 단위로 지정하며, 시간대는 호주 시드니(Australia/Sydney)로 지정하여 DatetimeIndex를 생성합니다.

datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=3, tz='Australia/Sydney', freq='ns')

생성된 DateTimeIndex를 출력해 확인해 보겠습니다.

print("DateTimeIndex...\n", datetimeindex)

.date 속성을 호출하면 타임스탬프의 날짜(date) 부분만 반환되며, 시간대 정보는 포함되지 않습니다.

print("\nThe numpy array (date part)..\n", datetimeindex.date)

전체 예제 코드

지금까지의 내용을 하나의 코드로 정리하면 다음과 같습니다.

import pandas as pd

# periods=3, freq=ns(나노초), timezone=Australia/Sydney로 DatetimeIndex 생성
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=3, tz='Australia/Sydney', freq='ns')

# DateTimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)

# 시간대 정보 없이 타임스탬프의 날짜 부분만 numpy 배열로 반환
print("\nThe numpy array (date part)..\n", datetimeindex.date)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DateTimeIndex...
DatetimeIndex([ '2021-10-20 02:30:50+11:00',
'2021-10-20 02:30:50.000000001+11:00',
'2021-10-20 02:30:50.000000002+11:00'],
dtype='datetime64[ns, Australia/Sydney]', freq='N')

The numpy array (date part)..
[datetime.date(2021, 10, 20) datetime.date(2021, 10, 20)
datetime.date(2021, 10, 20)]

결과 해석

출력 결과를 보면 세 개의 타임스탬프가 나노초 단위로 순차적으로 증가하며 생성되었고, 각 값에는 호주 시드니 시간대를 의미하는 +11:00 오프셋이 함께 표시되어 있습니다. 반면 datetimeindex.date 속성을 사용하면 시간과 시간대 정보는 모두 제거되고, datetime.date(2021, 10, 20) 객체들만 담긴 numpy 배열이 반환됩니다. 세 타임스탬프가 모두 동일한 날짜에 속하기 때문에 배열의 모든 요소가 같은 날짜 값을 가지게 되는 것입니다.