Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

데이터 프레임 인덱스를 양수 방향과 음수 방향으로 두 마침표로 이동하는 프로그램을 Python으로 작성하십시오.

<시간/>

데이터 프레임이 있고 양수 방향과 음수 방향으로 두 기간의 이동 인덱스가 있다고 가정합니다.

shift the index by three periods in positive direction
                     Id Age
2020-01-01 00:00:00 NaN NaN
2020-01-01 12:00:00 NaN NaN
2020-01-02 00:00:00 1.0 10.0
2020-01-02 12:00:00 2.0 12.0
2020-01-03 00:00:00 3.0 14.0
shift the index by three periods in negative direction
                     Id Age
2020-01-01 00:00:00 3.0 14.0
2020-01-01 12:00:00 4.0 11.0
2020-01-02 00:00:00 5.0 13.0
2020-01-02 12:00:00 NaN NaN
2020-01-03 00:00:00 NaN NaN

해결책

이 문제를 해결하기 위해 다음 단계를 따릅니다. -

  • start='01-01-2020', period =5, freq ='12H'로 팬더 시계열 생성

  • 데이터 프레임 정의

  • df.shift()를 적용하여 다음과 같이 인덱스를 양의 방향으로 두 기간 이동합니다.

df.shift(2,axis=0)
  • df.shift()를 적용하여 다음과 같이 인덱스를 음의 방향으로 두 기간 이동합니다.

df.shift(-2,axis=0)

예시

더 나은 이해를 위해 다음 코드를 살펴보겠습니다 -

import pandas as pd
time_series = pd.date_range('01-01-2020', periods = 5, freq ='12H')
df = pd.DataFrame({"Id":[1, 2, 3, 4, 5],
                     "Age":[10, 12, 14, 11, 13]},
                        index = time_series)
print("Dataframe is:\n",df)
print("shift the index by three periods in positive direction")
print(df.shift(2,axis=0))
print("shift the index by three periods in negative direction")
print(df.shift(-2,axis=0))

출력

Dataframe is:
                   Id Age
2020-01-01 00:00:00 1 10
2020-01-01 12:00:00 2 12
2020-01-02 00:00:00 3 14
2020-01-02 12:00:00 4 11
2020-01-03 00:00:00 5 13
shift the index by three periods in positive direction
                     Id Age
2020-01-01 00:00:00 NaN NaN
2020-01-01 12:00:00 NaN NaN
2020-01-02 00:00:00 1.0 10.0
2020-01-02 12:00:00 2.0 12.0
2020-01-03 00:00:00 3.0 14.0
shift the index by three periods in negative direction
                     Id Age
2020-01-01 00:00:00 3.0 14.0
2020-01-01 12:00:00 4.0 11.0
2020-01-02 00:00:00 5.0 13.0
2020-01-02 12:00:00 NaN NaN
2020-01-03 00:00:00 NaN NaN
NaN