Pandas에서 날짜 형식(date format)에 따라 지정된 포맷 문자열들의 Index를 반환하려면 DateTimeIndex.strftime() 메서드를 사용합니다. 이 메서드는 datetime 값들을 원하는 형식의 문자열로 변환하여 새로운 Index 객체로 돌려주므로, 날짜 데이터를 보고서나 로그 형태로 가공할 때 매우 유용합니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. DatetimeIndex 생성
시작 시점을 '2021-10-30 02:30:50'으로 하고, 기간(periods)은 7개, 빈도(freq)는 '2D'(2일 간격)로 설정하며, 시간대(timezone)는 'Australia/Adelaide'로 지정하여 DatetimeIndex를 생성합니다.
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=7, tz='Australia/Adelaide', freq='2D')3. 생성된 DatetimeIndex 확인
print("DateTimeIndex...\n", datetimeindex)4. strftime()으로 날짜 포맷 변환
strftime() 메서드에 다양한 포맷 지시자(directive)를 조합한 형식 문자열을 전달하면, 각 날짜가 해당 형식으로 변환된 문자열 Index를 얻을 수 있습니다.
print("\nFormat with different directives...\n",
datetimeindex.strftime('%b. %d, %Y was a %A'))주요 포맷 지시자 정리
- %b : 축약된 월 이름 (예: Oct, Nov)
- %d : 0이 채워진 일(day) 숫자
- %Y : 4자리 연도
- %A : 요일의 전체 이름 (예: Saturday, Monday)
전체 예제 코드
import pandas as pd
# 기간 7개, 빈도 2D(2일 간격)인 DatetimeIndex 생성
# 시간대는 Australia/Adelaide로 지정
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=7, tz='Australia/Adelaide', freq='2D')
# DatetimeIndex 출력
print("DateTimeIndex...\n", datetimeindex)
# DatetimeIndex의 빈도 출력
print("\nDateTimeIndex frequency...\n", datetimeindex.freq)
# 다양한 포맷 지시자를 적용한 결과 출력
print("\nFormat with different directives...\n",
datetimeindex.strftime('%b. %d, %Y was a %A'))실행 결과
위 코드를 실행하면 아래와 같은 출력이 생성됩니다.
DateTimeIndex... DatetimeIndex(['2021-10-30 02:30:50+10:30', '2021-11-01 02:30:50+10:30', '2021-11-03 02:30:50+10:30', '2021-11-05 02:30:50+10:30', '2021-11-07 02:30:50+10:30', '2021-11-09 02:30:50+10:30', '2021-11-11 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='2D') DateTimeIndex frequency... <2 * Days> Format with different directives... Index(['Oct. 30, 2021 was a Saturday', 'Nov. 01, 2021 was a Monday', 'Nov. 03, 2021 was a Wednesday', 'Nov. 05, 2021 was a Friday', 'Nov. 07, 2021 was a Sunday', 'Nov. 09, 2021 was a Tuesday', 'Nov. 11, 2021 was a Thursday'], dtype='object')
실행 결과에서 볼 수 있듯이, strftime()은 각 날짜를 '%b. %d, %Y was a %A' 형식(예: "Oct. 30, 2021 was a Saturday")으로 변환한 문자열들을 담은 새로운 Index를 반환합니다. 이처럼 strftime() 하나만으로 복잡한 날짜 포맷팅 작업을 손쉽게 처리할 수 있습니다.