#pandas-groupby #mean #series #intervals #deviation
#панды-групповые #означать #Серии #интервалы #отклонение
Вопрос:
У меня есть этот фрейм данных:
И я должен разделить строки столбца «Time.s» на интервалы, рассчитать среднее значение каждого интервала и, наконец, отклонение каждого среднего.
Я не могу разделить строки, которые имеют Volt.mv gt; 0,95 в группу за каждую секунду. Я пробовал с GroupBy, но это создает проблемы со второй таблицей:
Я использовал этот код, напрямую вычисляя среднее значение, но я, конечно, сделал что-то не так:
ecg.groupby("Time.s").apply(lambda x: x["Volt.mv"].mean())
Кто-нибудь может мне помочь?
Ответ №1:
Прежде чем выполнять групповое сопоставление, вам нужно сопоставить Time.s
интервал. В противном случае каждая группа будет иметь только одну строку (большую часть времени).
Вот как сгруппировать интервалы по 0,1 секунды и вычислить среднее значение и стандартное отклонение для каждого интервала:
interval_length = 0.1 df_aggregated = ( df .assign(interval=df["Time.s"].div(interval_length).astype("int").mul(interval_length)) .groupby("interval") .agg(volt_mean=("Volt.mv", "mean"), volt_std=("Volt.mv", "std")) )