在Python中,熊猫。如何通过WOM对数据框进行子集 - “每月一周”?

时间:2014-12-02 03:40:39

标签: python pandas indexing dataframe

我希望能够按月计算一个df的子集,类似于您在一周或一个月中可以执行的操作。

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

有没有办法做到这一点?

sample = df[df.index.WOM == 1]

我知道如果我输入上面的行你会得到AttributeError:'Index'对象没有属性'WOM',仅供参考,以了解我想要做什么。

由于

1 个答案:

答案 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)