У меня есть DataFrame
, в котором я выполняю следующие операции:
Я получаю общее количество участников в каждую минуту.
Я вычисляю zscore для каждого наблюдения.
Преобразование этих zscore в абсолютное значение с точностью до трех знаков после запятой.
Расчет разницымежду каждым последующим zscore для выполнения условия if else.
My Dataframe
выглядит следующим образом:
Вопрос: есть ли способ преобразовать приведенные ниже строки кода в однострочное lambda
выражение?
## The below dataframe(numpart_df) is for collecting inchannel population data for 10
## hours on which we are doing multiple checks based on the requirements.
numpart_df=num_part_obj.get_minute_by_interval(interval=14400)
## Below we are calculating the zscore for each data point for 10 hours in order to
## detect the flat line
numpart_df['zscore'] = ((numpart_df['total_musers'] - numpart_df['total_musers'].mean())
/ numpart_df['total_musers'].std(ddof=0))
## Then we are getting teh absolute value of the z-score upto 3 decimal places.
numpart_df['zscoreabs'] =numpart_df['zscore'].apply(lambda x: round(x, 3))
## Last we are calculating the difference between each z-score in order to detect the
## flatline.
numpart_df['delta_zscoreabs']= abs(numpart_df['zscoreabs'].diff())