Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 시계열 데이터에서 처음과 마지막 3일 출력하는 방법

시계열 데이터가 있을 때, 주어진 시리즈에서 처음 3일마지막 3일의 데이터를 추출하여 출력하는 결과는 다음과 같습니다.

first three days:
2020-01-01    Chennai
2020-01-03    Delhi
Freq: 2D, dtype: object
last three days:
2020-01-07    Pune
2020-01-09    Kolkata
Freq: 2D, dtype: object

이 문제를 해결하기 위해 아래 단계를 순서대로 따라가 보겠습니다.

해결 방법

  • 먼저 시리즈(Series)를 정의하고 변수 data에 저장합니다.

  • pd.date_range() 함수를 사용하여 시작 날짜를 '2020-01-01'로 지정하고, periods=5, freq='2D'(2일 간격) 옵션을 적용한 뒤 결과를 time_series로 저장합니다.

time_series = pd.date_range('2020-01-01', periods = 5, freq ='2D')
  • data.index = time_series를 통해 생성한 날짜 인덱스를 시리즈에 할당합니다.

  • data.first('3D') 메서드를 사용하여 시작 날짜부터 3일 이내의 데이터를 추출하고 first_day에 저장한 후 출력합니다.

first_day = data.first('3D')
  • data.last('3D') 메서드를 사용하여 종료 날짜 기준 마지막 3일 이내의 데이터를 추출하고 last_day에 저장한 후 출력합니다.

last_day = data.last('3D')

참고: first()last() 메서드는 행 개수가 아닌 날짜 범위(오프셋)를 기준으로 데이터를 선택합니다. 즉, '3D'는 첫 번째(또는 마지막) 날짜로부터 3일 이내에 해당하는 모든 인덱스를 반환합니다.

전체 예제 코드

아래 코드를 실행하면 동작 과정을 더 명확하게 이해할 수 있습니다.

import pandas as pd
data = pd.Series(['Chennai', 'Delhi', 'Mumbai', 'Pune', 'Kolkata'])
time_series = pd.date_range('2020-01-01', periods = 5, freq ='2D')
data.index = time_series
print("time series:\n",data)
first_day = data.first('3D')
print("first three days:\n",first_day)
last_day = data.last('3D')
print("last three days:\n",last_day)

실행 결과

time series:
2020-01-01    Chennai
2020-01-03    Delhi
2020-01-05    Mumbai
2020-01-07    Pune
2020-01-09    Kolkata
Freq: 2D, dtype: object
first three days:
2020-01-01    Chennai
2020-01-03    Delhi
Freq: 2D, dtype: object
last three days:
2020-01-07    Pune
2020-01-09    Kolkata
Freq: 2D, dtype: object

출력 결과를 보면 2일 간격(2D)으로 생성된 날짜 인덱스 중, first('3D')는 2020-01-01부터 3일 이내인 1월 1일과 1월 3일의 데이터를 반환하고, last('3D')는 마지막 날짜인 1월 9일로부터 역방향 3일 이내인 1월 7일과 1월 9일의 데이터를 반환하는 것을 확인할 수 있습니다.