我查看了pandas resample module的文档。虽然它确实描述了函数中可用的参数,但它并没有告诉我这些参数的可能选项。对于前者how
参数的值为'sum'
(如示例所示),但其他值可能是什么,这些值有何作用?同样适用于fill
参数。任何人都可以告诉我/提供这些参数的可用值的链接??
答案 0 :(得分:3)
在时间序列功能上,一个好的起点可能是pandas tutorial。但是,它没有。彻底涵盖这个话题。
您也可以查看那里的Cookbook - 只是为了找出大多数链接指向... Stack Overflow。
我找到了Python for Data Analysis中方法参数的表格。
至于您提出的两个特定参数:
how
- 可以是表示公共函数的字符串(如'sum'
,'mean'
等),自定义函数接受数组,以及 - 可能不是在那里提到 - DataFrame中特定列的函数词典(例如how = {col1: fun1, col2: fun2}
)
fill_method
- 可以是ffill
(又名pad
)或bfill
(又名backfill
) - 向前或向后填充值。
答案 1 :(得分:2)
我认为有关新重新采样功能的最佳文档部分可能会在what's new part for pandas 0.18.0中找到:
新API:
现在,您可以将.resample(..)
写为两阶段操作,例如.groupby(...)
,这会产生重新采样器。
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]
下采样
然后,您可以使用此对象执行操作。这些是下采样操作(从较高频率到较低频率)。
In [84]: r.mean()
Out[84]:
A B C D
2010-01-01 09:00:00 0.485748 0.447351 0.357096 0.793615
2010-01-01 09:00:02 0.820801 0.794317 0.364034 0.531096
2010-01-01 09:00:04 0.433985 0.314582 0.424104 0.625733
2010-01-01 09:00:06 0.624988 0.609738 0.633165 0.612452
2010-01-01 09:00:08 0.510470 0.534317 0.573201 0.806949
In [85]: r.sum()
Out[85]:
A B C D
2010-01-01 09:00:00 0.971495 0.894701 0.714192 1.587231
2010-01-01 09:00:02 1.641602 1.588635 0.728068 1.062191
2010-01-01 09:00:04 0.867969 0.629165 0.848208 1.251465
2010-01-01 09:00:06 1.249976 1.219477 1.266330 1.224904
2010-01-01 09:00:08 1.020940 1.068634 1.146402 1.613897
此外,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
<强>结论:强>
您可以查看记录良好的.groupby()
示例,以了解重新采样后可以执行的操作(使用重新采样的DF /系列)