我希望能够在一个月的一周中细分df,类似于您可以在一周或一个月的一天中执行的操作。

sample = df[df.index.month == 12]

有什么办法吗?是吗?
sample = df[df.index.WOM == 1]

我知道,如果我在上面键入一行,您会得到attributeRor:“index”对象没有属性“wom”,只是为了参考,了解我想做什么。
谢谢

最佳答案

您可以查看.weekofyear的值和月初的相同值,这两个值之间的差异应给出一个月中的一周;例如:

>>> days = ['2014-02-01', '2014-06-10', '2014-08-30', '2014-11-22']
>>> idx = pd.to_datetime(days)
>>> idx.weekofyear
array([ 5, 24, 35, 47], dtype=int32)

对于月初,您可以从索引本身中减去.day
>>> mon = idx - pd.to_timedelta(idx.day - 1, unit='D')
>>> mon.weekofyear
array([ 5, 22, 31, 44], dtype=int32)

一个月的一周是:
>>> 1 + idx.weekofyear - mon.weekofyear
array([1, 3, 5, 4], dtype=int32)

10-08 16:20