示例#1
0
    def __get_data_corr(self, df_1, df_2, move_len):
        #存在数据为nan和inf的,去掉

        pd_two = pd.concat([df_1, df_2], axis=1, sort=True)
        pd_two = pd_two.replace([np.inf, -np.inf], np.nan).dropna()

        item_list_00 = self.__get_best_corr(pd_two, move_len)  #获取最优person平移
        item_list_00 += self.__time_diff_corr_new(pd_two, move_len)  #获取最优TS
        item_list_00 += self.__k_l_info(pd_two, move_len)  #获取最优KL
        #0,3,6位移TS
        for i in [0, 3, 6]:
            item_list_00 += self.__get_per_ts_kl(
                pd.concat([df_1, df_2.shift(i)], axis=1, sort=True))

        #获取显著的3个周期频率
        freqs_list_1 = []
        freqs_list_2 = []

        base_cycle_1 = cycle_tool.Cycle_PF(df_1, 1)  #周期
        freqs_list_1 = base_cycle_1.get_fft_top()[0]
        try:
            base_cycle_2 = cycle_tool.Cycle_PF(df_2, 1)  #周期
            freqs_list_2 = base_cycle_2.get_fft_top()[0]
        except:
            print("err:fft高斯滤波错误", df_2)
        item_list_00 += [str(freqs_list_1), str(freqs_list_2)]
        return item_list_00
示例#2
0
 def __fft_gau(self, df):
     try:
         base_cycle = cycle_tool.Cycle_PF(df, 1)  #周期
         freqs_list = base_cycle.get_fft_top()[0]
         #base_cycle.show_fft()
         #base_cycle.get_fft_top()
         #三周期拟合数据
         base_fit_42_gau = base_cycle.cycle_fit_by_gau(*freqs_list)
     except:
         print("err:fft高斯滤波错误")
         base_fit_42_gau = pd.Series()
     return base_fit_42_gau
示例#3
0
def do_some():
    name = "CBA02701.CS_month.xlsx"
    pf = pd.read_excel(name)
    pf = pf.set_index("date")
    print(pf)
    pf_hp = hp_lb_c(pf[pf.columns.tolist()[0]])
    plt.show()
    raise
    sz_cycle = cycle_tool.Cycle_PF(pf_hp, 1)
    sz_cycle.get_fft_top()
    sz_fft = sz_cycle.show_fft()
    freqs_list = sz_cycle.get_fft_top()[0]

    base_fit_42_gau = sz_cycle.cycle_fit_by_gau(45)