我查阅了pandas resample模块的文档,虽然它描述了函数中可用的参数,但它没有告诉我这些参数的可能选项。例如,
how
参数接受'sum'
值(如示例所示),但还有哪些可能的值,以及这些值的作用是什么?fill
参数也是如此。有人能告诉我或提供一个链接来了解这些参数的可用值吗?how
参数接受'sum'
值(如示例所示),但还有哪些可能的值,以及这些值的作用是什么?fill
参数也是如此。有人能告诉我或提供一个链接来了解这些参数的可用值吗?一个很好的开始可能是 pandas教程 中的时间序列功能。然而,它并没有全面地涵盖这个主题。
你也可以看看 Cookbook - 只是为了发现大多数链接指向... Stack Overflow。
我在Python数据分析中找到了一张方法参数表。
关于你提到的两个特定参数:
how
- 可以是表示常见函数(如 'sum'
, 'mean'
等)的字符串,也可以是取数组的自定义函数,还有可能没有在那里提到的针对 DataFrame 特定列的函数字典(例如 how = {col1: fun1, col2: fun2}
)。
fill_method
- 可以是 ffill
(又称为 pad
)或 bfill
(又称为 backfill
)- 前向或后向填充值。
我认为关于新重新采样函数的最佳文档部分可以在pandas 0.18.0的新功能的“新API”中找到:
新API:
现在,您可以像.groupby(...)
一样将.resample(..)
编写为2个阶段的操作,这会产生一个Resampler。
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
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 / Series)可以做些什么。