计算时间序列中的均值和标准差

Calculate mean and standard deviation in a time-series

我有以下数据框:

    COD     ACT     DATE
0   5713    1.0     2020-07-16
1   5713    1.0     2020-08-11
2   5713    1.0     2020-06-20
3   5713    1.0     2020-06-19
4   5713    1.0     2020-06-01
5   23369   1.0     2020-07-17
6   23369   1.0     2020-08-07
7   23369   1.0     2020-09-02
8   23369   1.0     2020-11-22
9   32012   1.0     2020-06-02
10  32012   1.0     2020-07-26

我想计算整个时间序列上每个 COD 的均值和标准差。 之前我是这样计算的:

df['MEAN'] = df.groupby("COD")["ACT"].transform("mean")
df['STD'] = df.groupby("COD")["ACT"].transform("std")

但这计算了 ACT 的初始时间戳和 ACT 的最终时间戳的时间跨度的平均值(例如 5 个月内的 3 个 ACT - 而不是 8 个月)。 ACT 是 activity 的时间戳,但整个时间序列有 8 个月。我想计算整个 8 个月的均值和标准差。谁能帮帮我?

您正在寻找的是 groupby 上的应用函数。确保将 DATE 列转换为 datetime 对象。

df.groupby("COD").apply(lambda x: x["ACT"].mean())

为了更清楚起见,这里有一张截图。我还认为这可能有助于获得每个 COD 的月明智总和和均值分析。