Giả sử, bạn có một khung dữ liệu và chỉ số dịch chuyển theo hai giai đoạn theo hướng dương và âm là,
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
Giải pháp
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước dưới đây -
-
Tạo chuỗi thời gian cho gấu trúc với start =’01 -01-2020 ’, period =5, freq =’ 12H ’
-
Xác định khung dữ liệu
-
Áp dụng, df.shift () để dịch chuyển chỉ mục theo hai giai đoạn theo hướng tích cực khi,
df.shift(2,axis=0)
-
Áp dụng, df.shift () để thay đổi chỉ mục hai khoảng thời gian theo hướng tiêu cực như,
df.shift(-2,axis=0)
Ví dụ
Hãy xem đoạn mã sau để hiểu rõ hơn -
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))
Đầu ra
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