본문 바로가기
Python for Beginners

시계열 데이터 다루기-색인을 가지는 시계열 데이터

by Andrew's Akashic Records 2024. 8. 20.
728x90

시계열 데이터

 

색인을 가지는 시계열 데이터를 처리할 때, 판다스는 매우 유용한 도구입니다. 특히 시계열 데이터는 시간 정보를 인덱스로 사용하여 분석, 필터링, 변형 작업을 쉽게 수행할 수 있습니다. 여기서는 판다스를 사용하여 시계열 데이터의 색인을 설정하고 이를 활용한 기본적인 처리 방법을 설명하겠습니다.

 

테스트 데이터 생성

# It appears the initial import and generation failed. Let's correct that and regenerate the file.
import pandas as pd
import numpy as np

# Generate sample data for data.csv with proper imports
data_csv = {
    "timestamp": pd.date_range(start="2024-03-01", periods=100, freq='D'),
    "value": np.random.rand(100)
}

# Create a DataFrame
df_csv = pd.DataFrame(data_csv)

# Save to CSV file
filename_csv = "datasets/data.csv"
df_csv.to_csv(filename_csv, index=False)

filename_csv

 

1. 시계열 데이터 색인 설정

시계열 데이터를 판다스 데이터프레임으로 로드할 때, 시간 열을 DatetimeIndex로 설정하는 것이 일반적입니다. 이렇게 하면 시간에 따른 데이터 접근 및 조작이 용이해집니다.

import pandas as pd

# 데이터 로드 및 날짜 파싱
data = pd.read_csv('datasets/data.csv', parse_dates=['timestamp'])
data.set_index('timestamp', inplace=True)

data

2. 시간 기반 색인

DatetimeIndex가 설정되면, 특정 날짜나 시간에 대한 데이터 접근이 간단해집니다.

# 특정 날짜의 데이터 선택
specific_day = data.loc['2024-03-19']

# 일정 기간 동안의 데이터 선택
date_range = data.loc['2024-03-01':'2024-03-31']

date_range

3. 시계열 데이터 리샘플링

데이터의 빈도를 변경하고 싶을 때 리샘플링을 사용할 수 있습니다. 예를 들어, 일별 데이터를 월별 데이터로 집계할 수 있습니다.

# 일별 데이터를 월별 평균 데이터로 리샘플링
monthly_data = data.resample('ME').mean()

monthly_data

4. 시계열 데이터의 롤링 및 이동 평균

데이터의 추세를 평활화하기 위해 롤링(rolling) 또는 이동 평균을 계산할 수 있습니다.

# 7일 이동 평균 계산
rolling_avg = data.rolling(window=7).mean()
rolling_avg

5. 시계열 데이터의 시프트 및 차분

데이터를 시간적으로 이동하거나 시간적 차이를 계산하여 데이터의 변화를 관찰할 수 있습니다.

# 데이터를 하루 앞으로 시프트
shifted_data = data.shift(1)
display(shifted_data)

# 일별 차이 계산
daily_difference = data.diff()
display(daily_difference)

6. 결측치 처리

시계열 데이터에서 결측치를 처리하는 것은 중요합니다. 판다스는 결측치를 채우거나 제거하는 방법을 제공합니다.

# 결측치 제거
clean_data = data.dropna()
display(clean_data)

# 결측치를 이전 값으로 채우기
filled_data = data.ffill()
display(filled_data)

이러한 기본적인 시계열 데이터 처리 방법을 이해하고 사용하면, 시계열 데이터를 다양한 방법으로 분석하고 활용할 수 있습니다. 판다스는 이 외에도 시간대 처리, 주기적 데이터 처리 등 고급 기능을 제공하여 시계열 분석을 더욱 효율적으로 만들어 줍니다.

728x90