모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!
📝 목차
1. pd.to_datetime( ) 기본 모양
2. month.day 형태의 데이터가 있는 경우
3. year, month, day 가 각각의 column인 경우
🐼 이번 포스팅에서는 시계열 분석을 위해 알아야 할 시간 관련 함수 pd.to_datetime( ) 에 대해서 알아보겠습니다.
🐼 처리 기준은 year - month - day 의 형태입니다.
1. pd.to_datetime( ) 기본 모양
🐼 pd.to_datetime(series, format, errors)
- 처음 들어가는 인수인 series 는 데이터 처리 과정에서 datetime 형태로 바꾸려고 하는 열을 선언합니다.
- 두번째 인수 format은 datetime의 원하는 모양을 지정해줍니다.
- %y : 년도 (2자리) - 99, 00, 01 ...
- %Y : 년도 (4자리) - 1999, 2000 ...
- %m : 월 - 05, 08 ...
- %d : 날짜 (2자리) - 07, 15, 21 ...
- %H : 시간 (24시간) - 15, 18, 23 ...
- %I : 시간 (12시간) - 3, 6, 11 ...
- %M : 분 (2자리) - 23, 56 ...
- %S : 초 (2자리) - 36, 59 ...
- %a : 요일 (짧은 이름) - Mon, Tue, Wed ...
- %A : 요일 (긴 이름) - Monday, Tuesday, Wendsday ...
- %w : 요일 (숫자 / 0이 일요일, 1이 월요일) - 0, 1, 2 ...
- %b : 월 (짧은 이름) - Jan, Feb ...
- %B : 월 (긴 이름) - January, Febrary ...
- 마지막 인수 errors 는 오류를 불러일으킬지 결정하는 인수인데, 보통 errors = 'raise' 의 형태로 사용합니다.
2. month.day 형태의 데이터가 있는 경우
🐼 month 와 day가 ⚪.⚪ 의 형태로 되어있다고 가정해 봅시다. 즉 아래 형태의 데이터프레임이 있는 것입니다.
>>
month-day col1 col2
2.26 A 1
2.27 B 3
3.05 A 2
이런 경우에는 df ['month-day'].str.replace(".", "-") 형태로 지정해서 month-day 같은 꼴로 만들어줍니다.
그 다음 pd.to_datetime('2022-" + df ['month-day'], errors='raise') 를 선언해줍시다.
그러면 우리가 원하는 2022-02-26 같은 datetime column 이 생길 것입니다🙂.
🐼 전체 코드는 다음과 같습니다.
df['month-day'] = df['month-day'].str.replace(".", "-")
df['date'] = df.to_datetime("2022-" + df['month-day'], errors = 'raise')
df
>>
month-day col1 col2 date
2.26 A 1 2022-02-26
2.27 B 3 2022-02-27
3.05 A 2 2022-03-05
3. year, month, day 가 모두 각각의 column인 경우
🐼 아래와 같은 데이터를 가정해봅시다.
>>
year month day
2022 02 26
2022 02 27
2022 03 05
가장 먼저 할 일은 각 열의 데이터들이 str 자료형인지 확인하는 것입니다.
만약 다른 지료형이면 df.astype('str') 을 사용해서 먼저 각 데이터들을 str 형태로 바꿔줍시다.
그 다음에는 pd.to_datetime(df['year'] + '-' + df ['month'] + '-' + df ['day'], errors = 'raise' ) 를 선언해주면 됩니다.
🐼 전체 코드는 아래와 같습니다.
df = df.astpe('str)
df['date] = df.to_datetime(df['year'] + '-' + df['month'] + '-' + df['day'], errors = 'raise')
df
>>
year month day date
2022 02 26 2022-02-26
2022 02 27 2022-02-27
2022 03 05 2022-03-05
🐼 가장 중요한 점은 합칠 데이터의 형태가 반드시 str 형태여야 한다는 점입니다. 대부분의 시계열 데이터들은 int 자료형일 가능성이 높기 때문에 . info( ) 함수 등을 사용해서 자료형을 알아보고, 미리 변경하는 것이 좋을 것 같습니다. 이렇게 변경한 데이터프레임의 다른 데이터들은 당연히 원상복구 해주는 편이 좋습니다👍. 뒤에 있을 남은 전처리 과정을 꼭 생각해줍시다!!
'🐼 판다스 > Pandas 함수' 카테고리의 다른 글
🐼 Pandas 07. pd.Categorical( ) 함수 (2) | 2023.01.14 |
---|---|
🐼 Pandas 05. loc / iloc 함수 (2) | 2023.01.14 |
🐼 Pandas 04. DataFrame 열에 접근하기 (2) | 2023.01.13 |
🐼 Pandas 03. DataFrame 행에 접근하기 (0) | 2023.01.13 |
🐼 Pandas 02. DataFrame 만들기 (0) | 2023.01.13 |