Pandas时间序列数据:在一系列数据中选择每月的前几天

时间:2015-01-25 22:29:17

标签: python-3.x pandas indexing time-series

这可能看起来很荒谬但是......如何在一个时间序列中仅选择每月前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的新手。我一直在阅读Pandas时间序列数据的Documentation,但无法找到我认为可行的任何内容。我也是StackOverflow的新手,所以......我可能违反了各种规则。请怜悯。答案可能很明显,但不是我。建议好吗?

1 个答案:

答案 0 :(得分:2)

您可以访问索引的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