def app_interval_hours(self): app_nanopay_time = None for i in range(self.m_origin_data.shape[0]): appname = self.m_origin_data.iloc[i]["appname"].lower() install_time = self.m_origin_data.iloc[i]["timestamps"] if appname == "nanopay": app_nanopay_time = install_time break msg, flag, app_dt = time2datt(app_nanopay_time, _unit="ms") msg, flag, end_dt = time2datt(self.m_end_time, _unit="ms") total_seconds = (end_dt - app_dt).total_seconds() dst = int(total_seconds / 3600) return dst
def sms_interval_hours_max(self): sms_nanopay_max_time = None max_time = 0 for i in range(self.m_origin_data.shape[0]): body = self.m_origin_data.iloc[i]["body"] sms_time = self.m_origin_data.iloc[i]["time"] if "<Nanopay>" in body or "[Nanopay]" in body: if sms_time > max_time: max_time = sms_time sms_nanopay_max_time = max_time msg, flag, max_sms_dt = time2datt(sms_nanopay_max_time, _unit="s") msg, flag, end_dt = time2datt(self.m_end_time, _unit="ms") total_seconds = (end_dt - max_sms_dt).total_seconds() dst = int(total_seconds / 3600) return dst
def sms_timeone_rate(self): total_cnt = self.m_origin_data.shape[0] timeone_cnt = 0 for i in range(total_cnt): sms_time = self.m_origin_data.iloc[i]["time"] msg, flag, sms_dt = time2datt(sms_time, _unit="s") sms_hour = sms_dt.hour if sms_hour >= 0 and sms_hour <= 6: timeone_cnt += 1 return timeone_cnt * 1.0 / total_cnt