这可能看起来很荒谬但是......如何在一个时间序列中仅选择每月前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的新手,所以......我可能违反了各种规则。请怜悯。答案可能很明显,但不是我。建议好吗?
答案 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