Pandas의 Series 객체에는 dt 프로퍼티가 있습니다. 이 프로퍼티는 날짜와 시간과 관련된 작업을 수행하는 데 유용한 여러 유용한 기능 및 속성을 제공합니다. dt는 "datetime"의 약자로, Series 내부의 데이터가 날짜 및 시간 관련 정보를 포함하는 경우에 사용됩니다.
dt 프로퍼티의 주요 기능과 속성은 다음과 같습니다.
날짜 및 시간 속성 접근
dt를 사용하여 Series 내의 각 요소에 대한 날짜 및 시간 관련 속성에 쉽게 접근할 수 있습니다. 예를 들어, series.dt.year는 Series 내의 날짜에서 연도를 추출하며, series.dt.month는 월을 추출합니다.
날짜 및 시간 속성 (Attributes)
- dt.year: 각 요소에서 연도를 추출합니다.
- dt.month: 각 요소에서 월을 추출합니다.
- dt.day: 각 요소에서 일(day)을 추출합니다.
- dt.hour: 각 요소에서 시(hour)를 추출합니다.
- dt.minute: 각 요소에서 분(minute)을 추출합니다.
- dt.second: 각 요소에서 초(second)를 추출합니다.
- dt.microsecond: 각 요소에서 마이크로초(microsecond)를 추출합니다.
- dt.nanosecond: 각 요소에서 나노초(nanosecond)를 추출합니다.
- dt.week: 각 요소의 주(week) 번호를 추출합니다.
- dt.weekday: 각 요소의 요일을 추출합니다 (0은 월요일, 6은 일요일).
날짜 및 시간 연산
dt를 사용하여 Series 내의 날짜와 시간에 대한 연산을 수행할 수 있습니다. 예를 들어, 두 개의 Series를 더하면 해당 날짜와 시간을 합칠 수 있습니다.
날짜 및 시간 함수 (Methods)
- dt.date(): 각 요소의 날짜 부분을 추출합니다.
- dt.time(): 각 요소의 시간 부분을 추출합니다.
- dt.strftime(format): 지정된 형식으로 각 요소를 문자열로 변환합니다.
- dt.to_period(freq): 각 요소를 주기(예: 'D'는 일, 'M'은 월)로 변환합니다.
- dt.to_timestamp(freq): 각 요소를 지정된 주기에 해당하는 타임스탬프로 변환합니다.
- dt.is_leap(): 윤년 여부를 확인합니다.
- dt.days_in_month: 각 요소의 월별 일수를 반환합니다.
- dt.is_month_start 및 dt.is_month_end: 월의 시작과 끝을 확인합니다.
- dt.is_quarter_start 및 dt.is_quarter_end: 분기의 시작과 끝을 확인합니다.
- dt.is_year_start 및 dt.is_year_end: 연도의 시작과 끝을 확인합니다.
날짜 및 시간 형식 변환
dt를 사용하여 Series 내의 날짜 및 시간을 다른 형식으로 변환할 수 있습니다. 예를 들어, 날짜를 문자열로 변환하거나 반대로 문자열을 날짜로 변환할 수 있습니다.
날짜 및 시간 필터링
dt를 사용하여 Series 내의 날짜와 시간을 기반으로 필터링을 수행할 수 있습니다. 예를 들어, 특정 월에 해당하는 데이터를 선택하거나 특정 기간 내의 데이터를 추출할 수 있습니다.
날짜 및 시간 인덱스
dt를 사용하여 Series를 날짜 및 시간에 따라 인덱싱하고 슬라이싱할 수 있습니다. 이를 통해 시계열 데이터를 다루는 데 매우 편리합니다.
예제
날짜 및 시간 속성 접근
import pandas as pd
data = pd.Series(['2023-09-07 10:30', '2023-09-08 14:45', '2023-09-09 18:15'])
dates = pd.to_datetime(data)
years = dates.dt.year
months = dates.dt.month
days = dates.dt.day
hours = dates.dt.hour
minutes = dates.dt.minute
seconds = dates.dt.second
print(years)
print(months)
print(days)
print(hours)
print(minutes)
print(seconds)
날짜 및 시간 연산
series1 + series2: 두 Series를 더하면 해당 날짜와 시간을 합칠 수 있습니다.
import pandas as pd
data1 = pd.Series(['2023-09-07 10:30', '2023-09-08 14:45'])
data2 = pd.Series(['2023-09-09 18:15', '2023-09-10 09:00'])
dates1 = pd.to_datetime(data1)
dates2 = pd.to_datetime(data2)
# 두 날짜 사이의 시간 간격 계산
time_difference = dates2 - dates1
# 시간 간격을 다른 날짜에 더함
result = dates1 + time_difference
print(result)
날짜 및 시간 형식 변환
series.dt.strftime(format): 지정된 형식으로 날짜 및 시간을 문자열로 변환합니다.
import pandas as pd
data = pd.Series(['2023-09-07 10:30', '2023-09-08 14:45'])
dates = pd.to_datetime(data)
formatted_dates = dates.dt.strftime('%Y-%m-%d %H:%M')
print(formatted_dates)
날짜 및 시간 필터링
series[condition]: 조건을 사용하여 특정 날짜 및 시간을 필터링합니다.
import pandas as pd
data = pd.Series(['2023-09-07 10:30', '2023-09-08 14:45', '2023-09-09 18:15'])
dates = pd.to_datetime(data)
filtered_dates = dates[dates.dt.month == 9]
print(filtered_dates)
날짜 및 시간 인덱스
DataFrame에서 인덱스로 사용하여 시계열 데이터를 다룰 수 있습니다.
import pandas as pd
data = pd.Series([10, 20, 30], index=pd.to_datetime(['2023-09-07', '2023-09-08', '2023-09-09']))
print(data['2023-09-08'])
print(data['2023-09-08':'2023-09-09'])
해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.
'Big Data > DataAnalysis & Manipulate' 카테고리의 다른 글
[Pandas] 데이터프레임의 요소 간 비교 및 조작 (0) | 2023.11.06 |
---|---|
피어슨 상관계수와 스피어만 상관계수 (0) | 2023.09.17 |
[pandas] columns.difference (0) | 2023.08.28 |
데이터 스케일러(StandardScaler, MinMaxScaler) (0) | 2023.08.25 |
Apriori 알고리즘 (0) | 2023.08.16 |