Python에서 시계열 데이터를 리샘플링하는 방법

王林
풀어 주다: 2023-08-29 20:13:05
앞으로
789명이 탐색했습니다.

Python에서 시계열 데이터를 리샘플링하는 방법

시계열 데이터는 고정된 시간 간격으로 수집된 일련의 관측값입니다. 데이터는 금융, 경제, 보건, 환경 과학 등 모든 분야에서 나올 수 있습니다. 우리가 수집하는 시계열 데이터는 때때로 다른 빈도나 해상도를 가질 수 있으며, 이는 우리의 분석 및 데이터 모델링 프로세스에 적합하지 않을 수 있습니다. 이 경우 업샘플링이나 다운샘플링을 통해 시계열 데이터를 다시 샘플링하여 시계열의 빈도나 해상도를 변경할 수 있습니다. 이 문서에서는 시계열 데이터를 업샘플링하거나 다운샘플링하는 다양한 방법을 소개합니다.

업샘플링

업샘플링은 시계열 데이터의 빈도를 높이는 것을 의미합니다. 이는 일반적으로 더 높은 해상도나 더 빈번한 관찰이 필요할 때 수행됩니다. Python은 선형 보간, 최근접 이웃 보간 및 다항식 보간을 포함하여 시계열 데이터를 업샘플링하는 여러 가지 방법을 제공합니다.

구문

으아아아

여기

  • resample 함수는 시계열 데이터를 리샘플링하기 위해 pandas 라이브러리에서 제공하는 메서드이며 DataFrame에 적용되며 리샘플링에 필요한 빈도를 지정하는 규칙 매개변수(*args)와 키워드 인수를 사용합니다. (**kwargs)는 집계 방법 지정 또는 누락된 값 처리와 같은 리샘플링 동작을 사용자 정의하기 위해 제공될 수 있습니다.

  • asfreq 방법은 시계열 데이터의 빈도를 변환하기 위해 resample 함수와 함께 사용됩니다. 이 방법은 출력에 대해 원하는 빈도 문자열을 지정하는 freq 매개변수를 사용하여 처리 방법을 지정할 수 있습니다. 순방향 채우기, 역방향 채우기 또는 보간 등 리샘플링 프로세스 중에 도입된 누락된 값.

  • 보간법은 시계열 데이터의 누락된 값이나 공백을 채우는 데 사용됩니다. 지정된 방법(예: '선형', '가장 가까운', '스플라인')에 따라 보간하여 기존 관측치 간의 값을 추정합니다. 추가 매개변수는 보간 축, 연속 NaN 값의 패딩 제한, DataFrame을 수정하거나 새 DataFrame을 반환할지 여부를 제어할 수 있습니다.

선형 보간

시계열 데이터를 업샘플링하는 데 선형 보간법이 사용됩니다. 데이터 포인트 사이에 직선을 그려서 간격을 채웁니다. 선형 보간은 pandas 라이브러리의 resample 함수를 사용하여 구현할 수 있습니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

아래 예에는 연속되지 않은 날짜에 대한 세 개의 관찰이 있는 시계열 DataFrame이 있습니다. 'Date' 열을 날짜/시간 형식으로 변환하고 이를 인덱스로 설정합니다. asfreq 방법을 사용하는 일일 빈도('D') 마지막으로 '선형' 옵션이 포함된 보간 방법은 선형 보간을 사용하여 데이터 포인트 사이의 간격을 채웁니다. DataFrame, df_upsampled에는 보간된 값으로 업샘플링된 시계열 데이터가 포함됩니다.

으아아아

출력

으아아아

최근접 이웃 보간

가장 가까운 이웃 보간법은 가장 가까운 관측치로 데이터 포인트 사이의 간격을 채우는 간단한 방법입니다. 이 방법은 시계열이 급격한 변화를 나타내거나 관측치 순서가 중요한 경우에 유용할 수 있습니다.

가장 가까운 이웃 보간을 수행하는 '가장 가까운' 옵션.

Example

의 중국어 번역은 다음과 같습니다:

Example

위의 예에서는 이전과 동일한 원본 DataFrame을 사용합니다. 'D' 빈도로 리샘플링한 후 '가장 가까운' 옵션을 사용하는 보간 방법은 사용 가능한 가장 가까운 관측값인 df_upsampled를 복사하여 간격을 채웁니다. 가장 가까운 이웃 보간법을 사용하여 일일 빈도를 갖습니다.

으아아아

출력

으아아아

다운샘플링

다운샘플링은 시계열 데이터의 빈도를 줄여 데이터를 더 폭넓게 살펴보거나 분석을 단순화하는 데 사용됩니다. Python은 지정된 시간 간격에 걸쳐 값의 평균화, 합산 또는 최대화와 같은 다양한 다운샘플링 기술을 제공합니다.

구문

으아아아

여기서 평균, 합계 또는 최대값 과 같은 집계 방법은 리샘플링 후에 적용되어 각 리샘플링 간격 내에서 그룹화된 관측치를 나타내는 단일 값을 계산합니다. 이러한 방법은 일반적으로 데이터를 다운샘플링할 때 사용됩니다. 리샘플링된 DataFrame에 직접 적용하거나 리샘플링 함수와 함께 사용하여 적절한 규칙을 지정하여 특정 빈도(예: 주별 또는 월별)를 기반으로 데이터를 집계할 수 있습니다.

평균 다운샘플링

의 중국어 번역은 다음과 같습니다.

평균 다운샘플링

평균 다운샘플링은 각 간격 내 데이터 포인트의 평균을 계산합니다. 이 방법은 빈도가 높은 데이터를 처리하고 각 구간에 대한 대표값을 구할 때 유용합니다. 평균 다운샘플링을 수행하기 위해 평균 방법과 함께 resample 함수를 사용할 수 있습니다.

Example

的中文翻译为:

示例

In the below example, we start with a daily time series DataFrame spanning the entire month of June 2023. The resample function with the 'W' frequency downsamples the data to weekly intervals. By applying the mean method, we obtain the average value within each week. The resulting DataFrame, df_downsampled, contains the mean-downsampled time series data.

import pandas as pd

# Create a sample time series DataFrame with daily frequency
data = {'Date': pd.date_range(start='2023-06-01', end='2023-06-30', freq='D'),
        'Value': range(30)}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Downsampling using mean
df_downsampled = df.resample('W').mean()

# Print the downsampled DataFrame
print(df_downsampled)
로그인 후 복사

输出

            Value
Date             
2023-06-04    1.5
2023-06-11    7.0
2023-06-18   14.0
2023-06-25   21.0
2023-07-02   27.0
로그인 후 복사

Maximum Downsampling

最大降采样计算并设置每个间隔内的最高值。此方法适用于识别时间序列中的峰值或极端事件。在前面的示例中使用max而不是mean或sum允许我们执行最大降采样。

Example

的中文翻译为:

示例

In the below example, we start with a daily time series DataFrame spanning the entire month of June 2023. The resample function with the 'W' frequency downsamples the data to weekly intervals. By applying the max method, we obtain the Maximum value within each week. The resulting DataFrame, df_downsampled, contains the maximum-downsampled time series data.

import pandas as pd
# Create a sample time series DataFrame with daily frequency
data = {'Date': pd.date_range(start='2023-06-01', end='2023-06-30', freq='D'),
        'Value': range(30)}
df = pd.DataFrame(data)
df.set_index('Date', inplace=True)

# Downsampling using mean
df_downsampled = df.resample('W').max()

# Print the downsampled DataFrame
print(df_downsampled)
로그인 후 복사

输出

            Value
Date             
2023-06-04      3
2023-06-11     10
2023-06-18     17
2023-06-25     24
2023-07-02     29
로그인 후 복사

结论

在本文中,我们讨论了如何使用Python对时间序列数据进行重新采样。Python提供了各种上采样和下采样技术。我们探讨了线性和最近邻插值用于上采样,以及均值和最大值插值用于下采样。您可以根据手头的问题使用任何一种上采样或下采样技术。

위 내용은 Python에서 시계열 데이터를 리샘플링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!