In [82]: r = df.resample('2s')
In [83]: r
Out[83]: DatetimeIndexResampler [freq=<2 * Seconds>, axis=0, closed=left, label=left, convention=start, base=0]
下采样
然后可以使用此对象执行操作。这些是下采样操作(从较高的频率到较低的频率)。在
^{pr2}$
此外,resample现在支持getitem操作来对特定列执行重采样。在
In [86]: r[['A','C']].mean()
Out[86]:
A C
2010-01-01 09:00:00 0.485748 0.357096
2010-01-01 09:00:02 0.820801 0.364034
2010-01-01 09:00:04 0.433985 0.424104
2010-01-01 09:00:06 0.624988 0.633165
2010-01-01 09:00:08 0.510470 0.573201
and .aggregate type operations.
In [87]: r.agg({'A' : 'mean', 'B' : 'sum'})
Out[87]:
A B
2010-01-01 09:00:00 0.485748 0.894701
2010-01-01 09:00:02 0.820801 1.588635
2010-01-01 09:00:04 0.433985 0.629165
2010-01-01 09:00:06 0.624988 1.219477
2010-01-01 09:00:08 0.510470 1.068634
These accessors can of course, be combined
In [88]: r[['A','B']].agg(['mean','sum'])
Out[88]:
A B
mean sum mean sum
2010-01-01 09:00:00 0.485748 0.971495 0.447351 0.894701
2010-01-01 09:00:02 0.820801 1.641602 0.794317 1.588635
2010-01-01 09:00:04 0.433985 0.867969 0.314582 0.629165
2010-01-01 09:00:06 0.624988 1.249976 0.609738 1.219477
2010-01-01 09:00:08 0.510470 1.020940 0.534317 1.068634
一个好的开始可能是pandas tutorial关于时间序列功能。但事实并非如此。把话题讲清楚。在
你也可以看看那里的Cookbook-只是想找出大多数链接指向。。。堆栈溢出。在
我在Python for Data Analysis中找到了一个方法参数表。在
至于你问的两个特殊参数:
how
-可以是一个表示公共函数的字符串(如'sum'
,'mean'
,等等),一个采用数组的自定义函数,以及(这里可能没有提到的)DataFrame中特定列的函数dict(例如how = {col1: fun1, col2: fun2}
)fill_method
-可以是ffill
(又名pad
)或{backfill
)-向前或向后填充值。我认为关于新的重采样函数最好的文档可以在what's new part for pandas 0.18.0中找到:
新API:
现在,您可以将
.resample(..)
写成一个两阶段操作,类似于.groupby(...)
,这会产生一个重采样器。下采样
然后可以使用此对象执行操作。这些是下采样操作(从较高的频率到较低的频率)。在
^{pr2}$此外,resample现在支持getitem操作来对特定列执行重采样。在
结论:
您可以查看文档充分的
.groupby()
示例,以了解重新采样后可以做什么(使用重新采样的DF/Series)相关问题 更多 >
编程相关推荐