Pandas DataFrame asfreq 메서드

Beginner

소개

Python 의 pandas 라이브러리에 있는 DataFrame.asfreq() 메서드는 시계열을 지정된 빈도로 변환하는 데 사용됩니다. 이 메서드는 누락된 값을 패딩하거나 백필 (backfill) 하는 방법을 제공합니다. 이 메서드를 DataFrame 에 적용하여 시계열을 원하는 빈도로 변환하고, 빈도를 업샘플링 (upsample) 하며, 누락된 값을 채울 수 있습니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 즉시 해결해 드리겠습니다.

시계열을 지정된 빈도로 변환

DataFrame.asfreq() 메서드를 사용하여 시계열을 다른 지정된 빈도로 변환할 수 있습니다. 다음은 예시입니다.

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print(df)
print("Converting to a different frequency")
print(df.asfreq(freq='H'))

이 코드는 시계열을 가진 DataFrame 을 생성한 다음 이를 시간별 빈도로 변환합니다. 원본 DataFrame 과 변환된 DataFrame 을 모두 출력합니다.

DataFrame.asfreq() 메서드를 사용하여 시계열 업샘플링

DataFrame.asfreq() 메서드는 시계열의 빈도를 업샘플링 (upsample) 할 수도 있습니다. 다음은 예시입니다.

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print(df)
print("Upsampling the timeseries")
print(df.asfreq(freq='50s'))

이 코드에서는 시계열을 가진 DataFrame 을 생성한 다음 50 초 빈도로 업샘플링합니다. 원본 DataFrame 과 업샘플링된 DataFrame 을 모두 출력합니다.

DataFrame.asfreq() 메서드를 사용하여 시계열 업샘플링 및 누락된 값 채우기

DataFrame.asfreq() 메서드는 시계열을 업샘플링할 때 누락된 값을 채울 수도 있습니다. 다음은 예시입니다.

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, None, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print(df)
print("Upsampling timeseries and filling values")
print(df.asfreq(freq='50s', fill_value=9.0))

이 코드에서는 누락된 값을 가진 시계열을 사용하여 DataFrame 을 생성합니다. 그런 다음 50 초 빈도로 업샘플링하고 누락된 값을 값 9.0 으로 채웁니다. 원본 DataFrame 과 채워진 값이 있는 업샘플링된 DataFrame 을 모두 출력합니다.

DataFrame.asfreq() 메서드를 사용하여 시계열 업샘플링 및 누락된 값 역채우기

DataFrame.asfreq() 메서드는 시계열을 업샘플링할 때 누락된 값을 역 채우기 (back fill) 할 수도 있습니다. 다음은 예시입니다.

import pandas as pd

index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, None, 3.0], index=index)
df = pd.DataFrame({'Time': series})
print("Upsampling timeseries")
print(df.asfreq(freq='70s'))
print("Backward filling values")
print(df.asfreq(freq='70s', method='bfill'))

이 코드에서는 누락된 값을 가진 시계열을 사용하여 DataFrame 을 생성합니다. 그런 다음 70 초 빈도로 업샘플링하고 누락된 값을 역 채웁니다. 업샘플링된 DataFrame 과 역 채워진 값이 있는 DataFrame 을 모두 출력합니다.

요약

pandas 의 DataFrame.asfreq() 메서드는 시계열 데이터를 변환, 업샘플링 및 누락된 값을 채우는 데 유용한 도구입니다. 원하는 빈도와 누락된 값을 채우기 위한 선택적 매개변수를 지정하여 필요에 맞게 시계열 데이터를 조작할 수 있습니다. 이 메서드는 시계열 데이터가 처리되고 분석되는 방식에 대한 유연성과 제어를 제공합니다.