【发布时间】:2023-04-07 08:08:01
【问题描述】:
import pandas as pd
import pdb, random
dates = pd.date_range('1950-01-01', '1953-12-31', freq='D')
data = [int(1000*random.random()) for i in xrange(len(dates))]
cum_data = pd.Series(data, index=dates)
cum_data.head()
1950-01-01 310
1950-01-02 477
1950-01-03 401
1950-01-04 896
1950-01-05 65
...
1951-01-01 320
...
1952-01-01 330
...
1953-01-01 340
# Compute climatology
cum_data.groupby([cum_data.index.month, cum_data.index.day]).mean()
我想计算此数据帧的气候学,即找到对应于 1 月 1 日(1950 年至 1953 年)的所有值的平均值,然后将平均值附加到 1954 年 1 月 1 日期间的数据帧到 1960 年 12 月 31 日。我该怎么做?
预期输出应该是 1950 年到 1953 年的原始数据集。1954 年 1 月 1 日应该是 1950 年、1951 年、1952 年、1953 年 1 月 1 日的平均值。在这种情况下:
1954-01-01 325
...
1955-01-01 325
...
...
1960-01-01 325
所以, 1954 年 1 月 1 日等于 1955 年 1 月 1 日 ... 1960 年 1 月 1 日。其他所有日子也是如此。
【问题讨论】:
-
你的预期输出是什么?
-
这只是按一年中的一天计算平均值。这是基本的聚合。有大量现有的重复帖子。
-
感谢 smci,我正在计算一年中的平均值,问题是如何将其附加到现有数据框中以获取新的一组年份(1954 年到 1960 年)
-
我明白了,您想计算 1950-3 年的一年中的一个单一平均值,然后在 1954 年和 1955 年的每一年中将该平均值广播到该年的那一天。 .. 1960
-
@user308827 你找到相同问题的解决方案了吗?