コード例 #1
0
ファイル: utils.py プロジェクト: Wall-ee/PerformanceAnalytics
def periodicity(df):
    """
    Frequencies higher than daily will not be available
    """
    med = np.median(np.diff(df.index.values))
    seconds = int(med.astype('timedelta64[s]').item().total_seconds())
    freq = Frequency()
    if seconds < 60:
        freq.label = "S"
        freq.scale = None
    elif seconds < 3600:
        freq.label = "T"
        freq.scale = None
    elif seconds < 86400:
        freq.label = "H"
        freq.scale = None
    elif seconds == 86400:
        freq.label = "D"
        freq.scale = 252
    elif seconds <= 604800:
        freq.label = "W"
        freq.scale = 52
    elif seconds <= 2678400:
        freq.label = "M"
        freq.scale = 12
    elif seconds <= 7948800:
        freq.label = "Q"
        freq.scale = 4
    else:  # anything lower than year is deemed as yearly
        freq.label = "A"
        freq.scale = 1
    return freq
コード例 #2
0
def periodicity(df):
    """
    Frequencies higher than daily will not be available
    """
    med = np.median(np.diff(df.index.values))
    seconds = int(med.astype('timedelta64[s]').item().total_seconds())
    freq = Frequency()
    if seconds < 60:
        freq.label = "S"
        freq.scale = None
    elif seconds < 3600:
        freq.label = "T"
        freq.scale = None
    elif seconds < 86400:
        freq.label = "H"
        freq.scale = None
    elif seconds == 86400:
        freq.label = "D"
        freq.scale = 252
    elif seconds <= 604800:
        freq.label = "W"
        freq.scale = 52
    elif seconds <= 2678400:
        freq.label = "M"
        freq.scale = 12
    elif seconds <= 7948800:
        freq.label = "Q"
        freq.scale = 4
    else:  # anything lower than year is deemed as yearly
        freq.label = "A"
        freq.scale = 1
    return freq