现有 library/algorithm 用于时间序列中的情节频率检测和预测?

Existing library/algorithm for episodic frequency detection and prediction in a time series?

我正在 Python 中使用播客 RSS 提要。是否有任何现有的库或算法来检测和预测定期发布时间表,给定一系列时间?

例如,如果 an RSS feed 中的五个项目具有以下时间戳:

Fri, 20 Nov 2020 02:16:14 +0000
Fri, 13 Nov 2020 17:51:58 +0000
Fri, 6 Nov 2020 03:08:04 +0000
Fri, 30 Oct 2020 19:09:29 +0000
Fri, 23 Oct 2020 01:23:10 +0000

是否有确定“每周周五”的算法?或者如果 they 是:

Tue, 24 Nov 2020 10:00:00 -0000
Fri, 20 Nov 2020 09:00:00 -0000
Tue, 17 Nov 2020 10:00:00 -0000
Fri, 13 Nov 2020 10:00:00 -0000
Tue, 10 Nov 2020 10:00:00 -0000

确定“每周两次,下一集 27 号星期五”?我相信 Pocket Casts 有这样的功能,但它仍然是专有的。

对于简单的你可以这样使用pd.infer_freq

import numpy as np
import pandas as pd

date_range = [
    "Fri, 20 Nov 2020",
    "Fri, 13 Nov 2020",
    "Fri, 6 Nov 2020",
    "Fri, 30 Oct 2020",
    "Fri, 23 Oct 2020"]

date_range_2 = [
    "Tue, 24 Nov 2020",
    "Fri, 20 Nov 2020",
    "Tue, 17 Nov 2020",
    "Fri, 13 Nov 2020",
    "Tue, 10 Nov 2020"]

def get_frequency(date_range):
    ts = pd.Series(index=date_range)
    return pd.infer_freq(ts.index)

print(f"First Time Series: {get_frequency(date_range)}")
print(f"Second Time Series: {get_frequency(date_range_2)}")

第二个没有输出,但第一个没有输出

First Time Series: -1W-FRI
Second Time Series: None