これは、広告機能として動作するローリング機能のケースの1つですが、実行したいことはしません。
ローリング機能は、任意のデータを使用するように設計されて
だけではなく、時系列:rolling_mean
を使用した場合、そのように説明のために、私はrolling
を使用しますrolling
の賛成で廃止される予定だとパンダの最新バージョンでは、警告を取得する必要があります。それで、x個のユニットを振り返ってみます。ルックバックは、window
パラメータで設定します。また、データフレームのソート順に基づいてルックバックを行います。あなたがデータを正しくソートしたとしても、rolling
は、5のウィンドウを与えた年を意味するのか分かりません... "5つのセルを振り返ってみる"
あなたはそれらの値を何かで埋める必要がある欠損値を持つデータと比較します。 NaN
を使用するか、Pandasが提供する多くの補間方法のいずれかを使用できます。きれいに10点の値と日付dfを例にソート返し
np.random.seed(1)
ts_data = pd.DataFrame(np.random.randn(6210),
index = pd.date_range('2000-01-01', '2016-12-31', freq='D'),
columns=['data']) # index of every day for 7 years
ts_sample = ts_data.sample(n=10).sort_index() ## sample then sort
print ts_sample
:あなたは、合成データを使用するためにいくつかの簡単なを提供しなかったので、私はいくつかのセットアップを設定
:私はNaN
方法を説明しますインデックス:
data
2001-07-21 0.107343
2003-07-12 0.658537
2004-08-21 -0.463338
2006-07-13 -0.866955
2011-12-14 0.020956
2012-05-14 -2.685125
2012-12-27 0.494037
2013-06-09 -1.299026
2013-12-12 0.371309
2015-06-17 0.201656
ので、それらの欠損値を埋めるために、のは、すべての日で完全なインデックスが、何も新しいDFを作成してみましょう:
full_period = pd.DataFrame(index = pd.date_range('2000-01-01', '2016-12-31', freq='D'))
あなたが列に私たちの例のデータをポップ場合、パンダはNaN
と、欠損値を埋めるだろう、パンダは、インデックスを使用する方法のため:
full_period['data'] = ts_sample.data
print full_period['2015-06-16':'2015-06-18']
、我々はどのようにそれを見ることができますので、私は3日間だけ印刷しています内のデータをポップ:
data
2015-06-16 NaN
2015-06-17 0.201656
2015-06-18 NaN
は、だから今、私たちはNaN
で満たさ欠落データと毎日のデータの完全なセットを持っています。あなたは、元の日付のバックのみローリング平均を選択したい場合はあなたができる、
data
2015-06-16 -0.619570
2015-06-17 -0.482699
2015-06-18 -0.482699
:同じ3つの値を印刷し、もう一度、
rolling = full_period.rolling(min_periods=1, window=365*5,center=False).mean() # daily data so using 5 years of days
print rolling['2015-06-16':'2015-06-18']
と:今、私たちは、ローリング平均を行うことができますちょっと一本のライナーでそれをしてください:
print rolling.ix[ts_sample.index.tolist()]
data
2001-07-21 0.107343
2003-07-12 0.382940
2004-08-21 0.100847
2006-07-13 -0.141103
2011-12-14 0.020956
2012-05-14 -1.332085
2012-12-27 -0.723377
2013-06-09 -0.867290
2013-12-12 -0.619570
2015-06-17 -0.482699
これはとても役に立ちました。私はあなたがこの答えに費やした時間を感謝します。ちょうど確認するために、もし私が10年移動平均を計算したいと思ったら、私はウィンドウ= 365 * 10を正しく設定するでしょうか? – spacedinosaur10
dfの各セルを1日に設定すると、1年は365 ... so yup、365 * 10 –