def Chauvent(self, values): #DataFrame이 아닌, seriese value로 받아서 filtering mean = values.mean() #평균 delta = values.apply(lambda x: abs(x - mean) ) #delta = abs(values - mean), 각각 행을 계산(lambda이용) N = len(values) #변수 갯수 sigma = math.sqrt((1 / N) * sum(delta**2)) #standard error of the mean if sigma != 0: di = delta.apply(lambda x: x / (sigma * math.sqrt(2))) retrv = di.apply(lambda x: math.erfc(x) * N >= 0.5 ) #math.erfc(x)*N < 0.5 ? false : true else: retrv = True return retrv
def Chauvent_Angle(self, values): #DataFrame이 아닌, seriese value로 받아서 filtering mean_sin = math.sin((values / (180 / math.pi)).mean()) # sin 평균 mean_cos = math.cos((values / (180 / math.pi)).mean()) # cos 평균 mean = math.atan2(mean_cos, mean_sin) mean = mean * (180 / math.pi) delta = values.apply(lambda x: abs(x - mean)) N = len(values) #변수 갯수 sigma = math.sqrt((1 / N) * sum(delta**2)) #standard error of the mean if sigma != 0: di = delta.apply(lambda x: x / (sigma * math.sqrt(2))) retrv = di.apply(lambda x: math.erfc(x) * N >= 0.5 ) #math.erfc(x)*N < 0.5 ? false : true else: #retrv = pd.Series([True]) retrv = True return retrv