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() 함수를 사용함
▶ 문자열 포맷팅을 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에 사용자 정의 |
'코딩 연습' 카테고리의 다른 글
네이버 주식 데이터 추출(크롤링), 판다스 그래프 그리기 (0) | 2024.03.30 |
---|---|
썸네일 이미지 만들기 용량 줄이기(with python) (0) | 2023.12.10 |
SQL 함수, 서브 쿼리 연습 (0) | 2023.12.08 |
DB, DBMS, 그리고 SQL 기본 문법 알아보기 (0) | 2023.12.08 |
ImportError: DLL load failed while importing win32clipboard (0) | 2023.11.13 |
댓글