【问题标题】:multi-monthly mean with pandas' Series熊猫系列的多月平均值
【发布时间】:2015-07-18 12:36:10
【问题描述】:

我有一系列datetime 对象和一系列跨越数年的数据。 A 可以创建一个Series 对象并对其重新采样以按月分组:

df=pd.Series(varv,index=dates)
multiMmean=df.resample("M", how='mean')
print multiMmean

然而,这会输出

2005-10-31    172.4
2005-11-30     69.3
2005-12-31    187.6
2006-01-31    126.4
2006-02-28    187.0
2006-03-31    108.3
...
2014-01-31     94.6
2014-02-28     82.3
2014-03-31    130.1
2014-04-30     59.2
2014-05-31     55.6
2014-06-30      1.2

这是系列中每个月的平均值列表。这不是我想要的。我想要 12 个值,一个用于一年中的每个月,每个月都有一个平均值。我如何获得 multiMmean 的那个?

我曾尝试在 multiMmean 上使用 resample("M",how='mean') 并列出推导,但我无法让它工作。我错过了什么?

谢谢。

【问题讨论】:

    标签: python pandas time-series


    【解决方案1】:

    以下对我有用:

    # create some random data with datetime index spanning 17 months
    s = pd.Series(index=pd.date_range(start=dt.datetime(2014,1,1), end = dt.datetime(2015,6,1)), data = np.random.randn(517))
    
    In [25]:
    # now calc the mean for each month
    s.groupby(s.index.month).mean()
    Out[25]:
    1     0.021974
    2    -0.192685
    3     0.095229
    4    -0.353050
    5     0.239336
    6    -0.079959
    7     0.022612
    8    -0.254383
    9     0.212334
    10    0.063525
    11   -0.043072
    12   -0.172243
    dtype: float64
    

    所以我们可以groupby datetimeindex 的month 属性并调用mean 这将计算所有月份的平均值

    【讨论】:

      猜你喜欢
      • 2021-04-04
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 2020-10-17
      • 2021-08-16
      相关资源
      最近更新 更多