Pandas 时间序列数据:选择数据范围内月份的前 X 天

Pandas timeseries data: selecting first X days of month in a range of data

这可能看起来很荒谬但是...我如何 select 在时间序列中只获取每个月前 28 天的数据?

我有跨越多年的时间序列索引数据(大多数日子的数据)。我有的是这样的:

import pandas as pd
df = pd.read_csv('filename')

Out: 

               Amount:
Date:
2014-07-14     76.59;
2014-07-11     1394.08;
2014-07-08     90.00;
2014-07-06     378.52;
2014-06-30     15.52;
2014-06-30     3016.53;
2014-06-30     0.29;

我正在尝试弄清楚如何使输出看起来像这样(即 - 本月 28 日之后没有数据):

Date:          Amount:
2014-07-14     76.59;
2014-07-11     1394.08;
2014-07-08     90.00;
2014-07-06     378.52;

我已经搜索了几个小时,但我是 Python 的新手。我一直在阅读 Documentation 的 Pandas 时间序列数据,但找不到任何我认为有用的东西。我也是 Whosebug 的新手,所以......我可能违反了各种规则。请大发慈悲。答案可能很明显,但对我来说不是。请提出建议?

您可以访问索引的 day 属性并使用它在 df 中创建布尔索引:

In [66]:

df[df.index.day <= 28]
Out[66]:
             Amount
Date               
2014-07-14    76.59
2014-07-11  1394.08
2014-07-08    90.00
2014-07-06   378.52

可以在此处找到其他属性的列表:http://pandas.pydata.org/pandas-docs/stable/timeseries.html#time-date-components