用 Python 编写一个程序,将数据框索引在正向和负向移动两个周期

pythonpandasserver side programmingprogramming更新于 2024/6/22 7:40:17

假设,您有一个数据框,将索引在正向和负向移动两个周期,

将索引在正向移动三个周期
                     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
将指数向负方向移动三个周期
                     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

解决方案

为了解决这个问题,我们将遵循下面给出的步骤 −

  • 创建 pandas 时间序列,其中 start=’01-01-2020’、periods = 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],
                         &"年龄";:[10, 12, 14, 11, 13]},
                          index = time_series)
print("Dataframe is:\n",df)
print("将索引向正方向移动三个周期")
print(df.shift(2,axis=0))
print("将索引向负方向移动三个周期")
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
将指数向正方向移动三个周期
                     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
将指数向负方向移动三个周期
                     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

相关文章


有用资源