in flask/utils.py [0:0]
def calculate_mas(metric, data, window):
"""
Returns moving average metrics across specified interval for records of data
:param metric: Metric of interest (string)
:param data: Metric's DataFrame
:param window: The sliding interval (integer)
:return: A DataFrame
"""
timestamp = data['Timestamp']
obs = data[metric]
mean = obs.rolling(window).mean()
std = obs.rolling(window).std()
var = obs.rolling(window).var()
for i in range(0, window):
if i < window:
try:
mean[i] = obs[0:i + 2].mean()
std[i] = obs[0:i + 2].std()
var[i] = obs[0:i + 2].var()
except TypeError:
continue
diff_m = obs - mean
metric_stats = pd.DataFrame.from_dict(
{'obs': obs, 'mav': mean, 'diff_m': diff_m, 'mstd': std, 'mvar': var, 'timestamp': timestamp})
metric_stats['timestamp'] = pd.to_datetime(metric_stats['timestamp'])
return metric_stats