多年时间序列与 'standard year' 之间的区别

Difference between multi year timeseries and it's 'standard year'

假设我有一定年数的时间序列,如:

rng = pd.date_range(start = '2001-01-01',periods = 5113)
ts = pd.TimeSeries(np.random.randn(len(rng)), rng)

我可以通过以下方式计算它的标准年(所有年份中每一天的平均值):

std = ts.groupby([ts.index.month, ts.index.day]).mean()

现在我想知道如何从这个标准年中减去我多年的时间序列,以便得到一个显示哪些天数低于或高于标准年的时间序列。

您可以使用 groupby 执行此操作,只需从该组的值中减去每个组的平均值:

average_diff = ts.groupby([ts.index.month, ts.index.day]).apply(
    lambda g: g - g.mean()
)