본문 바로가기
코딩 연습

판다스 날짜 추출 - 연,월,일 분리

by good4me 2024. 3. 28.

goodthings4me.tistory.com

판다스 날짜 추출 - 연,월,일 분리

 

날짜 데이(2023-01-01)에서 연,월,일을 각각 분리하여 다른 열(컬럼)에 저장하는 판다스 날짜 추출 연습 코드. 월, 일의 경우 2자리를 유지하도록 추출하기 위해 문자열 포맷팅을 사용함

 

판다스로 날짜에서 연,월일, 추출해보기

 

▶ 날짜 컬럼이 있는 엑셀 파일 : test.xlsx

 

 

판다스로 엑셀 파일을 불러오기

 

'test.xlsx' 파일을 읽어와 데이터프레임으로 저장한 후, 그 데이터프레임을 출력하는 작업을 수행함

 

 

엑셀 파일이 아닌 dict 타입 날짜를 사용하여 연, 월, 일 분리하기

 

dict를 DataFrame으로 만든 후 날짜 컬럼 'startDt' 열에 대해 to_datetime()와 dt 접근자를 사용하여 연도, 월, 일을 추출하고 각각 'year', 'month', 'day' 열에 저장함

 

 

연, 월, 일을 2자리 형식으로 추출하는 방법 

 

연도는 마지막 두 자리, 월과 일은 각각 2자리로 만들어서 DataFrame에 추가하는 작업을 수행함

 

1차 추출한 연, 월, 일에 값에 대해

연도는  데이터 타입을 astype()으로 문자열로 만들고 str[-2:] 슬라이싱 처리

월과 일은 문자열 포맷팅 람다 함수를 받는 apply() 함수를 사용함

 

IT, 전자제품 선물

 

문자열 포맷팅을 f-스트링으로 처리

 

월과 일의 문자열 포맷팅을 f-스트링과 zfill() 메서드를 사용하여 월, 일을 두 자리로 맞춤

 

 

pandas의 Series 객체에서 제공되는 datetime 속성 및 메서드 목록

 

datetime 속성 및 메서드
pandas.Series.dt.date
pandas.Series.dt.time
pandas.Series.dt.timetz
pandas.Series.dt.year
pandas.Series.dt.month
pandas.Series.dt.day
pandas.Series.dt.hour
pandas.Series.dt.minute
pandas.Series.dt.second
pandas.Series.dt.is_leap_year
pandas.Series.dt.daysinmonth
pandas.Series.dt.days_in_month
pandas.Series.dt.tz
pandas.Series.dt.freq
pandas.Series.dt.unit
pandas.Series.dt.normalize
pandas.Series.dt.isocalendar
pandas.Series.dt.to_period
pandas.Series.dt.to_pydatetime
pandas.Series.dt.microsecond
pandas.Series.dt.tz_localize
pandas.Series.dt.nanosecond
pandas.Series.dt.tz_convert
pandas.Series.dt.dayofweek
pandas.Series.dt.normalize
pandas.Series.dt.strftime
pandas.Series.dt.day_of_week
pandas.Series.dt.round
pandas.Series.dt.weekday
pandas.Series.dt.floor
pandas.Series.dt.dayofyear
pandas.Series.dt.ceil
pandas.Series.dt.day_of_year
pandas.Series.dt.month_name
pandas.Series.dt.days_in_month
pandas.Series.dt.day_name
pandas.Series.dt.quarter
pandas.Series.dt.as_unit
pandas.Series.dt.is_month_start
pandas.Series.dt.qyear
pandas.Series.dt.is_month_end
pandas.Series.dt.start_time
pandas.Series.dt.end_time
pandas.Series.dt.is_quarter_start
pandas.Series.dt.days
pandas.Series.dt.is_quarter_end
pandas.Series.dt.seconds
pandas.Series.dt.is_year_start
pandas.Series.dt.microseconds
pandas.Series.dt.is_year_end
pandas.Series.dt.nanoseconds
pandas.Series.dt.components
pandas.Series.dt.unit

 

 

 

주요  시간 범위 지정 부호

 

 

지정자 설명
H 시간단위
T 분단위
S 초단위
L 밀리초 단위
U 마이크로초 단위
N 나노초 단위
B 평일
C 사용자가 정의한 평일
D 일자 단위
W 주단위
MS 월시작일
M 월마지막날
QS 분기의 시작일
Q 분기의 마지막 날
AS 연시작일
A 연마지막 날
SMS 월 시작일과 15일
SM 15일과 월 마지막 날
BM 휴일을 제외한 M
BQ 일을 제외한 Q
BQS 휴일을 제외한 QS
BA 휴일을 제외한 A
BAS 유일을 제외한 AS
BH 업무시간 단위(9~16시)
CBM BM에 사용자정의
BMS 휴일을 제외한 MS
CBMS BMS에 사용자 정의

 

 

댓글