Akashic Records

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

Python for Beginners

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

Andrew's Akashic Records 2024. 8. 20. 11:11
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
Comments