python

[python] 데이터 분석의 핵심: 날짜 전처리 방법(to_datetime)

독립성이 강한 ISFP 2023. 10. 18. 10:16
728x90
반응형
import pandas as pd

# 날짜와 시간 데이터를 포함하는 데이터프레임 생성
data = {
    '날짜': ['2022-01-01 10:00:00', '2023-09-30 11:30:00', '2021-02-17 15:20:00', '2023-07-01 20:45:00'],
    '값': [10, 20, 30, 40]
}
df = pd.DataFrame(data)
df

df 데이터셋은 날짜, 값 두 개의 피처로 이루어진 데이터프레임 입니다.

df 피처의 타입을 확인해보겠습니다.

train.info()

보다시피 날짜 칼럼은 object 형태입니다.

 

이번에는 to_datetime() 함수를 사용하여 '날짜' 열의 데이터 타입을 날짜/시간 형식(datetime)으로 변환하는 작업을 진행하겠습니다.

 

df['날짜'] = pd.to_datetime(df['날짜'])
df.head()

변경된 df 피처의 타입을 확인해보겠습니다.

df.info()

 

날짜 피처의 Dtype이 object 에서 datetime64 형태로 바뀌었네요.

 

 

원래 '날짜' 열이 문자열(string) 또는 다른 데이터 타입(object 등)으로 저장되어 있었다면, 이런 변환이 필요합니다.

왜냐하면 날짜와 시간에 관련된 연산(예: 날짜 간 차이 계산, 특정 일자로부터 몇일 후 계산 등)을 수행하거나,

시계열 분석을 위해 올바른 순서로 정렬하기 위해서는 해당 열의 데이터 타입이 datetime 형식이어야 하기 때문입니다.

 

따라서, '날짜' 열의 값을 datetime 객체로 변환하여 날짜/시간 관련 처리를 쉽게 할 수 있도록 돕습니다.

예를 들어, 이제는 `df['날짜'].dt.year`, `df['날짜'].dt.month`, `df['날짜'].dt.day` 등과 같은 방법으로 각각 년도, 월, 일 정보를 추출할 수 있게 됩니다.

 

1.날짜 데이터에서 '년' 추출

df['년'] = df['날짜'].dt.year
df

2. 날짜 데이터에서 '월' 추출

df['월'] = df['날짜'].dt.month
df

3. 날짜 데이터에서 '일' 추출

df['일'] = df['날짜'].dt.day
df

4.기준 날짜로부터의 일수 차이 계산하기

특정 '기준 날짜'로부터 다른 날짜들까지의 일수 차이를 계산합니다.   

먼저 '2021-01-01'을 기준 날짜로 설정하고, 날짜 데이터를 포함하는 데이터프레임을 생성합니다.   

이 데이터프레임 내의 날짜들은 `to_datetime` 함수를 사용하여 `datetime` 타입으로 변환됩니다.   

 

그런 다음, 각 날짜에서 기준 날짜를 빼서 날짜 차이를 계산하고, `.dt.days` 속성을 통해 이 차이를 일수로 변환합니다. 결과적으로, 각 날짜가 기준 날짜로부터 몇 일 떨어져 있는지를 나타내는 새로운 열이 생성됩니다.

import pandas as pd

# 기준 날짜 설정
base_date = pd.to_datetime('2021-01-01')

# 'date' 열을 datetime 타입으로 변환
df['날짜'] = pd.to_datetime(df['날짜'])

# 기준 날짜로부터의 일 수 계산
df['days_from_base'] = (df['날짜'] - base_date).dt.days

df

728x90
반응형