Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas - 문자열 데이터를 날짜/시간(datetime) 유형으로 변환하는 방법

Pandas에서 문자열로 저장된 날짜 데이터를 실제 날짜/시간(datetime) 유형으로 변환하려면 to_datetime() 메서드를 사용하면 됩니다. 이 메서드는 다양한 형식의 문자열을 자동으로 인식하여 datetime64 유형으로 바꿔주기 때문에 데이터 분석 전처리 과정에서 매우 유용하게 활용됩니다.

1. 예제 DataFrame 생성하기

먼저 세 개의 열(컬럼)을 가진 DataFrame을 만들어 보겠습니다. 이 중 'Date_of_Purchase' 열은 날짜가 문자열 형태로 저장되어 있습니다.

import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Stationery'],
   'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Chairs'],
   'Date_of_Purchase': ['10/07/2021', '20/04/2021', '25/06/2021', '15/02/2021'],
})

이 상태에서는 날짜가 단순한 문자열(object)이기 때문에 날짜 연산(예: 기간 계산, 정렬, 필터링)을 수행할 수 없습니다.

2. to_datetime()으로 문자열을 날짜로 변환하기

다음과 같이 pd.to_datetime() 함수를 적용하면 해당 열의 문자열이 datetime 유형으로 변환됩니다.

dataFrame['Date_of_Purchase'] = pd.to_datetime(dataFrame['Date_of_Purchase'])

전체 코드

import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Stationery'],
   'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Chairs'],
   'Date_of_Purchase': ['10/07/2021', '20/04/2021', '25/06/2021', '15/02/2021'],
})

print("\nDataFrame...\n", dataFrame)

# 문자열 날짜를 datetime 유형으로 변환
dataFrame['Date_of_Purchase'] = pd.to_datetime(dataFrame['Date_of_Purchase'])

print("\n변환 후 DataFrame...\n", dataFrame)

3. 실행 결과

위 코드를 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.

DataFrame...
    Date_of_Purchase   Product Category   Product Name
0         10/07/2021          Computer       Keyboard
1         20/04/2021      Mobile Phone        Charger
2         25/06/2021        Electronics        SmartTV
3         15/02/2021         Stationery         Chairs

변환 후 DataFrame (문자열 날짜가 datetime으로 변환됨)...
    Date_of_Purchase   Product Category   Product Name
0         2021-10-07          Computer       Keyboard
1         2021-04-20      Mobile Phone        Charger
2         2021-06-25        Electronics        SmartTV
3         2021-02-15         Stationery         Chairs

출력 결과를 보면 'Date_of_Purchase' 열의 값이 YYYY-MM-DD 형식의 표준 날짜 표기로 변경된 것을 알 수 있습니다. 이제 이 열은 datetime64 유형이므로 .dt.year, .dt.month 같은 속성으로 연도·월·일을 추출하거나, 특정 기간 조건으로 데이터를 필터링하는 등 다양한 시계열 연산을 자유롭게 수행할 수 있습니다.

참고: 형식 지정 옵션

날짜 형식이 일관되어 있다면 format 인자를 사용해 변환 속도를 높이고 오류를 방지할 수 있습니다. 예를 들어 'DD/MM/YYYY' 형식이라면 다음과 같이 지정합니다.

dataFrame['Date_of_Purchase'] = pd.to_datetime(
    dataFrame['Date_of_Purchase'], format='%d/%m/%Y'
)

또한 파싱할 수 없는 값이 있을 때 전체 변환이 실패하지 않도록 하려면 errors='coerce' 옵션을 추가하면, 잘못된 값은 NaT(Not a Time)으로 처리됩니다.