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
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 정해진 임의 순서로 정렬 하기 (0) | 2024.03.28 |
---|---|
[pandsa] NaN 위치에 데이터를 끌어 올리는 방법 (0) | 2024.03.19 |
[pandas] NaN이 포함된 열에서 정수를 유지하는 방법 (0) | 2024.02.27 |
[pandas] 문자열에서 정규 표현식으로 그룹을 활용하는 방법 (0) | 2024.02.27 |
[pandas] 각 열을 고윳값의 순서대로 정렬하기 (0) | 2024.02.20 |