판다스/판다스 팁
[pandas] datetime을 연도와 쿼터를 표기하는 문자열로 변환하고 싶을 때
김판다t
2024. 3. 18. 15:50
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