Как разделить серию на временные интервалы? (python)

#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")) )