본문 바로가기
판다스/판다스 팁

[pandas] datetime을 연도와 쿼터를 표기하는 문자열로 변환하고 싶을 때

by 김판다t 2024. 3. 18.

datetime을 연도와 쿼터를 표기하는 문자열로 변환하고 싶을 때

 

 

예제

 

import pandas as pd
df = pd.DataFrame(['2022-01-03', '2023-05-04'], columns=['date'])
df['date'] = pd.to_datetime(df['date'])

 

 

 

 

쿼터를 의미하는 strftime의 %q 지시자는 datetime 자료형을 대상으로 사용할 수 없다.

 

 

해결1

 

to_period 함수로 period 자료형으로 변환하면 연도와 쿼터의 조합으로 표기된다.

 

문자열로 만들려면 결과에 astype 함수를 적용해 문자열로 변환하자

 

df['date'].dt.to_period('Q').astype('str')

 

 

0    2022Q1
1    2023Q2
Name: date, dtype: object

 

 

 

해결 2

 

period 자료형으로 변환하면 %q 지시자도 사용할 수 있기에 strftime 함수로도 변환이 가능하다.

 

df['date'].dt.to_period('Q').dt.strftime('%Y%qQ')

 

 

0    20221Q
1    20232Q
Name: date, dtype: object

 

 

해결2의 장점은 지시자의 조합을 변경하는 것으로 다양한 문자열 포맷으로 표현할 수 있다.

 

 

df['date'].dt.to_period('Q').dt.strftime('%qQ/%y')

 

 

0    1Q/22
1    2Q/23
Name: date, dtype: object

 

 

 

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas