哪些值在 Pandas 'Freq' 标签中有效?

What values are valid in Pandas 'Freq' tags?

提问人:sundowner 提问时间:2/11/2016 最后编辑:cottontailsundowner 更新时间:1/30/2023 访问量:93075

问:

我正在尝试使用 .我遇到了一些对 、 和 有效的值,我希望能够快速查找正确的字符串以获得我想要的东西。date_rangefreqBMEBMS

哪些值在 Pandas 'Freq' 标签中有效?

python pandas 数据帧 日期时间 频率

评论


答:

267赞 jezrael 2/11/2016 #1

您可以找到它,称为 Offset Aliases

为有用的公共时间序列频率提供了许多字符串别名。我们将这些别名称为偏移别名。

Alias    Description
B        business day frequency
C        custom business day frequency
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 end frequency
QS       quarter start frequency
BQS      business quarter start frequency
A, Y     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
2赞 cottontail 1/30/2023 #2
如何查找偏移量别名

您可以通过以下方式找到有效频率的完整列表

pd.offsets.__all__

返回

['BusinessDay', 'MonthBegin', 'Hour', 'Minute', 'Second', ...]

事实证明,它们中的每一个都是一个类,并且它们都有一个属性,即别名。因此,例如,可以通过_prefixMinute

pd.offsets.Minute._prefix        # 'T'

# some other aliases
pd.offsets.MonthEnd._prefix      # 'M'
pd.offsets.MonthBegin._prefix    # 'MS'

事实上,如果我们看一下源代码,别名字典是通过访问每个偏移类来构造的。_prefix

锚定偏移量

除了 jezrael 帖子中的偏移量外,您还可以为某些频率指定锚定后缀

每周频率可以在一周中的任何一天具有锚点:、、、、和 。W-SUNW-MONW-TUEW-WEDW-THUW-FRIW-SAT

例如,若要将周定位到星期一结束,可以使用(请注意,它不区分大小写)。W-MON

pd.date_range('2022-01-01', '2022-02-01', freq='w-mon')
# DatetimeIndex(['2022-01-03', '2022-01-10', '2022-01-17', '2022-01-24', '2022-01-31'],
#               dtype='datetime64[ns]', freq='W-MON')

此外,季度和年度频率可以在一年中的任何月份都有锚点;即以下频率可以以月份为后缀,以便每个频率都可以锚定为在该月结束:

  • Q
  • QS
  • BQ
  • BQS
  • A
  • AS
  • BA
  • BAS

有效后缀为 、 、 、 、 、 和 。JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC

例如,要将年份定位到 5 月初结束,可以使用A-MAY

pd.date_range('2020-01-01', '2023-02-01', freq='AS-May')
# DatetimeIndex(['2020-05-01', '2021-05-01', '2022-05-01'], dtype='datetime64[ns]', freq='AS-MAY')