2017-10-23 27 views
1

私はこの時系列の毎月の正規分布を計算する次の作業例を持っています。私が探しているのは、12の値を返す集計された分布なので、何年にもわたって毎月計算されます。つまり、1月のサブセットには2011年1月、2012年、2013年、2014年のデータ形式が含まれており、そこからの分布が計算されます。あなたは日時インデックスにyear属性を使用することができますグループ年毎の月ごとのパンダ

from scipy.stats import norm 
import pandas as pd 
import numpy as np 


def some_function(data): 
    mu, std = norm.fit(data) 
    a = mu * 3 
    b = std * 5 
    return a, b 


rng = pd.date_range('1/1/2011', periods=4*365, freq='D') 
ts = pd.Series(np.random.randn(len(rng)), index=rng) 
ts.groupby(pd.TimeGrouper('M')).apply(some_function).apply(pd.Series).rename(columns={0: 'mu', 1: 'std'}) 

乾杯

答えて

2

In [11]: ts.groupby(ts.index.year).apply(some_function).apply(pd.Series).rename(columns={0: 'mu', 1: 'std'}) 
Out[11]: 
      mu  std 
2011 0.110566 4.827900 
2012 -0.094430 4.950958 
2013 -0.097986 4.965611 
2014 -0.078819 4.709263 
関連する問題