2014-02-05 132 views
0

我有一个csv文件,我通过pandas.DataFrame.from_csv阅读。本月过滤日期范围

我想过滤那些包含某个月的第三个星期五或日期索引或其中一列中的任何月份的那些行。

我玩过dateutilpandas.datetools.WeekOfMonth(week=2,weekday=4) 但仍然搞不明白。

+0

你可以发布你的csv的示例数据吗? –

回答

0

你的csv文件的一个例子将帮助我们回答你的问题。我假设你正在使用时间戳,这是真的吗?

您可以通过将时间戳列表尝试过滤(开始和结束日期,这里是任意的,并在CSV文件可能会来作为第一个和最后一个行):

start_date='1/1/2010' 
finish_date='10/1/2010' 

third_friday_timestamps = pd.date_range(start_date,finish_date, freq='WOM-3FRI') 

这将给出一系列时间戳。使用本系列,您可以使用解释为here的策略过滤来自csv文件的数据帧。我希望这有帮助。

+0

这几乎是我在找的东西。不过, – user3276418

+0

这几乎是我在找的东西。但是,我需要本月的第三个星期六,如WOM-3SAT。我尝试了WOM-3SAT作为日期范围频率,但遇到了错误。我尝试通过3rdfriday_timestamps + pandas.tseries.offsets.Day(1),但又得到一个错误。该频率是否不受支持?有没有其他的选择?而且 - 我找不到在pandas.date_range中支持哪些频率的详细文档,我甚至没有意识到r3d星期五的频率。 (我对熊猫很陌生)有没有好的文档? – user3276418

+0

@ user3276418如果这有助于你正式接受我的答案,我可以使用声誉,谢谢!它只适用于工作日。如果你需要在周末度过一天,以下是一些可能有助于解决问题的文档:http://pandas.pydata.org/pandas-docs/stable/timeseries.html – simple