def prepareToCorrelation(self,df,by): """ prepare dataframe to correlation algorithm :param df: input df {pd.DataFrame} :param by: group by column :return: df : input dataframe from originFrame : frames to move analyzedFrameUpdated : stable main frame contains the most really coordinates fewDataFrame : lack of data frame readyToCorr : if data frame is ready to be pushed to correlation algorithm """ _df = df.copy() fewDataFrame = pd.DataFrame() if by == 'User': self.startPoint,noises = Filters.noisyUser(_df,by,col = 'rawPower') #df = self.filters.rollingMean(df,'Power',by = by,noises = noises) if by == 'race_id': self.startPoint = _df['race_id'].iloc[0] analyzedFrame,originFrame = self.splitFrameByMinLen(_df,by) analyzedFrameUpdated,readyToCorr = self.checkBoundaries(originFrame,analyzedFrame,by) if (not readyToCorr): _df.drop(analyzedFrame.index,inplace=True) fewDataFrame = analyzedFrame return _df,originFrame,analyzedFrameUpdated,fewDataFrame,readyToCorr