我希望能够按月的一周对df进行子集化,类似于您对星期几或一个月中的某天所做的操作.
sample = df[df.index.month == 12]
那么有什么办法可以做到这一点?
sample = df[df.index.WOM == 1]
我知道,如果我在上面键入这行,则会得到AttributeError:’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)