我希望能够按月计算一个df的子集,类似于您在一周或一个月中可以执行的操作。
sample = df[df.index.month == 12]
有没有办法做到这一点?
sample = df[df.index.WOM == 1]
我知道如果我输入上面的行你会得到AttributeError:'Index'对象没有属性'WOM',仅供参考,以了解我想要做什么。
由于
答案 0 :(得分:4)
您可以查看.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)