5. 시계열 및 고급 작업
pandas는 시계열 데이터 작업에 매우 적합하며, 다양한 시간 기반 분석을 위한 강력한 기능을 제공합니다.
5.1. 날짜 및 시간 처리
문자열을 datetime 객체로 변환하는 것은 시계열 분석의 첫 번째 단계입니다. datetime 열을 인덱스로 설정하면 강력한 시간 기반 작업을 수행할 수 있습니다.
# 날짜 열이 있는 DataFrame 생성
data = {'Date': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'],
'Value': [10, 12, 15, 13, 16]}
df_time = pd.DataFrame(data)
# 'Date' 열을 datetime 객체로 변환
df_time['Date'] = pd.to_datetime(df_time['Date'])
# 'Date'를 인덱스로 설정
df_time.set_index('Date', inplace=True)
print(df_time.head())
print(df_time.info())
5.2. 시계열 데이터 리샘플링
리샘플링은 시계열을 한 빈도에서 다른 빈도로 변환하는 과정입니다(예: 일별 → 월별). 집계 함수가 뒤따르는 .resample()이 일반적으로 사용됩니다.
# 일별 데이터를 주별 데이터로 리샘플링하고 평균을 취함
weekly_mean = df_time.resample('W')['Value'].mean()
print(weekly_mean)
# 월별 합계로 리샘플링
monthly_sum = df_time.resample('M')['Value'].sum()
print(monthly_sum)
5.3. 롤링 및 확장 윈도우
윈도우 함수를 사용하면 슬라이딩(롤링) 또는 성장(확장)하는 데이터 윈도우에 대한 계산을 수행할 수 있습니다. 이는 이동 평균, 누적 합계 등에 유용합니다.
# 3일 롤링 평균 계산
df_time['Rolling_Mean_3D'] = df_time['Value'].rolling(window=3).mean()
print(df_time)
# 확장 합계 계산
df_time['Expanding_Sum'] = df_time['Value'].expanding().sum()
print(df_time)
이러한 고급 작업을 통해 pandas를 사용하여 정교한 시계열 분석을 수행하고 데이터 세트에서 더 깊은 통찰력을 추출할 수 있습니다.