สมมติว่า คุณมี dataframe และดัชนี shift สองช่วงเวลาในทิศทางบวกและลบคือ
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’ ช่วงเวลา =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