[SciPy-User] Question about scikits.timeseries.lib.moving_funcs.mov_average
Wes McKinney
wesmckinn at gmail.com
Wed Jun 23 10:48:04 EDT 2010
On Wed, Jun 23, 2010 at 10:40 AM, Pierre GM <pgmdevlist at gmail.com> wrote:
>
> On Jun 23, 2010, at 8:11 AM, Andreas wrote:
>
>> Hi,
>>
>> in the docstring to mov_average() it says:
>>
>> The result will also be masked at i if any of the input values in the
>> slice ``[i-span:i+1]`` are masked
>>
>> Is there any way to prevent this behaviour?
>
> Nope. That limits nasty surprises otherwise.
>
>> I have a very patchy
>> timeseries (one value every 3 to 6 days), and I'd like to use the
>> mov_average function to smooth these data.
>> Any idea how to do that?
>> mov_average(data,20) would have been perfect, if not for the masked values
>> ...
>> What I tried so far is
>>
>> mov_average(data.compressed(),20)
>>
>> but that has the same size as data.compressed(). I would really like to
>> have daily values ..
>
> You could try to fill your missing values beforehand, w/ functions like backward_fill and forward_fill, then passing your series to mov_average. Or the reverse way: compress your data to get rid of the missing values, pass it to mov_average, reconvert it to a daily series w/ fill_missing_dates (to get the right number of dates), then fill it w/ backward_fill or forward_fill.
>
> Let me know how it goes.
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
In pandas all my moving window functions accept a "min_periods"
argument so that it will place a value in a data hole assuming there
are sufficient observations in window:
In [4]: arr
Out[4]:
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., NaN,
NaN, NaN, NaN, NaN, 15., 16., 17., 18., 19.])
In [5]: rolling_mean(arr, 10, min_periods=1)
Out[5]:
array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. ,
4.5, 5. , 5.5, 6. , 6.5, 7. , 9. , 11. , 13. ,
15. , 17. ])
Have you thought of adding this functionality to scikits.timeseries?
More information about the SciPy-User
mailing list