【问题标题】:Remove lags/gaps in time series data for a particular dataframe in pandas删除熊猫中特定数据帧的时间序列数据中的滞后/差距
【发布时间】:2023-04-04 20:40:02
【问题描述】:

我正在尝试根据订单簿在特定时间范围内更新的次数来模拟特定股票的分布。

我遇到的问题与数据工程和熊猫有关。因为我只处理交易时间和交易日,所以我的数据集有多个缺口,因此数据看起来并不连续。下图清楚地表明:

您可以看到,较大的差距是周末,而小的差距是交易后的时间。 黑色的小方块(如果放大)看起来像这样:

数据框如下所示:

    arrivalTime           value           date
    0 days 09:30:02.231     1          2021-05-03
    0 days 09:30:02.981     3          2021-05-03
    0 days 09:30:02.999     99         2021-05-03
    0 days 09:30:10.284     11         2021-05-03
    0 days 09:30:10.293     92         2021-05-03
... ... ...
    0 days 15:59:42.654     82         2021-05-28
    0 days 15:59:42.655     19         2021-05-28
    0 days 15:59:42.651     122        2021-05-28
    0 days 15:59:42.941     199        2021-05-28
    0 days 15:59:44.721     19         2021-05-28

我需要的确切内容是,一旦交易日结束,第二天就在该日结束后继续。如果有任何问题,请告诉我

谢谢!

【问题讨论】:

    标签: python pandas dataframe statistics time-series


    【解决方案1】:

    IIUC,您想将日期转换为连续日期:

    示例:

    >>> df
             date
    0  2021-05-05
    1  2021-05-05
    2  2021-05-05
    3  2021-05-06
    4  2021-05-06
    5  2021-05-06
    6  2021-05-07
    7  2021-05-07
    8  2021-05-07
    9  2021-05-10  # <- 2021-05-08
    10 2021-05-10  # <- 2021-05-08
    11 2021-05-10  # <- 2021-05-08
    12 2021-05-11  # <- 2021-05-09
    13 2021-05-11  # <- 2021-05-09
    14 2021-05-11  # <- 2021-05-09
    
    >>> df['date'].min() + df['date'].diff().ne(pd.Timedelta(0)).cumsum().sub(1) \
                                     .apply(pd.tseries.offsets.Day)
    0    2021-05-05
    1    2021-05-05
    2    2021-05-05
    3    2021-05-06
    4    2021-05-06
    5    2021-05-06
    6    2021-05-07
    7    2021-05-07
    8    2021-05-07
    9    2021-05-08
    10   2021-05-08
    11   2021-05-08
    12   2021-05-09
    13   2021-05-09
    14   2021-05-09
    Name: date, dtype: datetime64[ns]
    

    【讨论】:

    • 嗨 Corralien,感谢您的回复。我尝试按照您的建议进行操作,但它始终返回相同:0 2021-05-03 09:30:00.551614797 1 2021-05-04 09:30:00.551614797 2 2021-05-05 09:30:00.551614797 3 2021-05-06 09:30:00.551614797 4 2021-05-07 09:30:00.551614797 ... 1030 2022-11-16 09:30:00.551614797 1031 2022-11-17 09:30:010.25122730:010.2512 -18 09:30:00.551614797 1033 2022-11-18 09:30:00.551614797 1034 2022-11-19 09:30:00.551614797 都是 09:30:00.551614797。提前致谢
    • 我需要跳过周末,当市场在 4:00 收市时立即从第二天的上午 9:30 开始,以便数据连续。
    猜你喜欢
    • 2020-11-15
    • 2020-07-26
    • 2018-12-20
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多