Pandas에서 기간(Period) 객체를 원하는 형식의 문자열로 변환해 반환하려면 period.strftime() 메서드를 사용하면 됩니다. strftime('%d-%b-%Y')처럼 형식 지정자(format specifier)를 인자로 전달하면, 그 형식에 맞게 변환된 문자열을 얻을 수 있습니다.
1. 필요한 라이브러리 임포트
먼저 pandas 라이브러리를 불러옵니다.
import pandas as pd
pandas.Period는 특정 시점이나 기간을 나타내는 객체입니다. 아래와 같이 연도, 월, 일, 시, 분, 초 정보를 지정하여 Period 객체를 생성할 수 있습니다.
period = pd.Period(freq="S", year=2021, month=9, day=18, hour=8, minute=20, second=45)
생성한 Period 객체를 출력해 확인합니다.
print("Period...\n", period)
이어서 strftime() 메서드로 형식화된 문자열 표현을 출력합니다.
print("\nString representation (format)...\n", period.strftime('%d-%b-%Y'))
2. 주요 형식 지정자 정리
- %d : 일(day), 두 자리 숫자로 표시 (예: 18)
- %b : 축약된 월 이름 (예: Sep)
- %B : 월의 전체 이름 (예: September)
- %Y : 네 자리 연도 (예: 2021)
- %A : 요일의 전체 이름 (예: Saturday)
3. 전체 예제 코드
다음은 서로 다른 형식 지정자를 활용한 완전한 예제입니다.
import pandas as pd
# pandas.Period는 특정 시점(기간)을 나타냅니다.
# Period 객체 생성
period = pd.Period(freq="S", year=2021, month=9, day=18, hour=8, minute=20, second=45)
# Period 객체 출력
print("Period...\n", period)
# 형식화된 문자열 표현 출력
print("\nString representation (format)...\n", period.strftime('%d-%b-%Y'))
# 다른 형식 지정자를 사용한 결과 출력
print("\nString representation (format with different directives)...\n",
period.strftime('%b. %d, %Y was a %A'))
4. 실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Period... 2021-09-18 08:20:45 String representation (format)... 18-Sep-2021 String representation (format with different directives)... Sep. 18, 2021 was a Saturday
실행 결과를 보면, 첫 번째 strftime('%d-%b-%Y') 호출은 날짜를 '18-Sep-2021' 형태로 반환하고, 두 번째 호출은 월·일·연도와 함께 요일 정보까지 포함한 'Sep. 18, 2021 was a Saturday'라는 문장 형태의 문자열을 반환합니다. 이처럼 strftime() 메서드를 활용하면 보고서나 로그 등 다양한 용도에 맞게 날짜와 시간을 자유롭게 형식화할 수 있습니다.