Pandas重新采样文档

229

我完全理解如何使用resample,但是文档没有很好地解释选项。

因此,resample函数中的大多数选项都很直观,除了以下两个:

  • rule:目标转换的偏移字符串或对象
  • how:string类型,用于向下取样或重新采样的方法,默认为“mean”

因此,通过查看我在网上找到的尽可能多的示例,我可以看到,对于rule,您可以使用'D'表示日,'xMin'表示分钟,'xL'表示毫秒,但这就是我能找到的全部内容。

对于how,我看到了以下内容:'first'np.max'last''mean''n1n2n3n4...nx',其中nx是每个列索引的第一个字母。

那么,在文档中是否有我错过的显示pandas.resample的rule和how输入的每个选项的地方?如果有,请问在哪里,因为我找不到它。如果没有,它们的所有选项是什么?


9
对于使用how='last'how='first'进行重新采样的Google漫游者们:不要忘记添加closed='left', label='left'链接 - Nasser Al-Wohaibi
@NasserAl-Wohaibi,我相当有信心认为您上面的评论表明这些选项可以帮助完全回答以下问题。您以前遇到过这个问题吗?https://dev59.com/6ITba4cB1Zd3GeqP0xGy - Amelio Vazquez-Reina
how='last'现在已经被弃用,建议使用resample(...).last() - Shadi
3个回答

392
B         business day frequency
C         custom business day frequency (experimental)
D         calendar day frequency
W         weekly frequency
M         month end frequency
SM        semi-month end frequency (15th and end of month)
BM        business month end frequency
CBM       custom business month end frequency
MS        month start frequency
SMS       semi-month start frequency (1st and 15th)
BMS       business month start frequency
CBMS      custom business month start frequency
Q         quarter end frequency
BQ        business quarter endfrequency
QS        quarter start frequency
BQS       business quarter start frequency
A         year end frequency
BA, BY    business year end frequency
AS, YS    year start frequency
BAS, BYS  business year start frequency
BH        business hour frequency
H         hourly frequency
T, min    minutely frequency
S         secondly frequency
L, ms     milliseconds
U, us     microseconds
N         nanoseconds

请查看时间序列文档。其中包括偏移量(和'锚定'偏移量)的列表,以及有关重新采样的部分。
请注意,没有所有不同how选项的列表,因为它可以是任何NumPy数组函数,并且可以通过名称将可通过分组调度获得的任何函数传递给how

2
“...因为它可以是任何NumPy数组函数,但是我在文档中读到了这一点,但是是否有任何文件说明这个函数究竟应该做什么以及它与重新采样有什么关系...?我感到相当迷失。” - Eike P.
5
应该在所有相关文档区域中链接此内容,例如重新采样。这是缩写的链接:http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases - wordsforthewise
2
已添加一个拉取请求以改进文档 https://github.com/pandas-dev/pandas/pull/30252 - Aseem Bansal
@wordsforthewise +∞ 给你。我有时候也在想,是否有人知道 ISO8601 有一种表示持续时间的方式。 - undefined

69

除此之外还有更多,但您可能正在寻找以下列表:

B   business day frequency
C   custom business day frequency (experimental)
D   calendar day frequency
W   weekly frequency
M   month end frequency
BM  business month end frequency
MS  month start frequency
BMS business month start frequency
Q   quarter end frequency
BQ  business quarter endfrequency
QS  quarter start frequency
BQS business quarter start frequency
A   year end frequency
BA  business year end frequency
AS  year start frequency
BAS business year start frequency
H   hourly frequency
T   minutely frequency
S   secondly frequency
L   milliseconds
U   microseconds

来源:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases

这是一个有关IT技术的翻译。在此链接中,你可以了解到时间序列数据处理中的offset aliases(偏移别名)相关概念和用法。通过使用这些别名,您可以更方便地操作和表示日期和时间数据。在此文档中,您将学习如何使用各种offset aliases来转换和操作时间序列数据。请参阅链接以了解详细信息。

12
为什么文档中使用了“5分钟”的时间单位,却没有“分”单位? - Ziyuan
1
@zyuang,这里仅显示短格式:例如,“ms”也不在列表中。 - Julien__
看起来文档已经更新了。现在它显示了“min” T,min minutely | frequency,以及“ms” L,ms | milliseconds - tturbo

0

如果您不确定会得到什么,请使用此函数:

from pandas.tseries.frequencies import to_offset
print(to_offset("7D")) # <7 * Days>
print(to_offset("W")) # <Week: weekday=6>
print(to_offset("M")) # <MonthEnd>
print(to_offset("m")) # <MonthEnd>
print(to_offset("min")) # <Minute>

例如,大写字母和小写字母相同(不像通常的M=月份和m=分钟)

请注意

因此,这不相同并会给您不同的结果:

s.resample("7d").mean()
s.resample("W").mean() # is not the same!

你能在这里看到这里的原因是:“警告:除了‘M’、‘A’、‘Q’、‘BM’、‘BA’、‘BQ’和‘W’之外,所有频率偏移的标签和关闭的默认值都为‘left’,而这些频率偏移的默认值都为‘right’。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接