一周的第一个日期大于x

时间:2016-07-11 11:54:14

标签: python pandas

我希望在7月份获得 第一个 星期一,大于7月10日的日期列表,我想知道是否有优雅的解决方案,避免循环/列表理解。 到目前为止,这是我的代码,它使所有7月的星期一大于10日:

import pandas as pd
last_date = '08-Jul-2016'
monday2_dates=pd.date_range('1-Jan-1999',last_date, freq='W-MON') 
g1=pd.DataFrame(1.0, columns=['dummy'], index=monday2_dates) 
g1=g1.loc[(g1.index.month==7) & (g1.index.day>=10)]

1 个答案:

答案 0 :(得分:1)

IIUC你可以这样做:

获取指定日期范围内的第二个星期一列表

In [116]: rng = pd.date_range('1-Jan-1999',last_date, freq='WOM-2MON')

过滤它们,以便我们只有7月份的day >= 10

In [117]: rng = rng[(rng.month==7) & (rng.day >= 10)]

创建相应的DF

In [118]: df = pd.DataFrame({'dummy':[1] * len(rng)}, index=rng)

In [119]: df
Out[119]:
            dummy
1999-07-12      1
2000-07-10      1
2003-07-14      1
2004-07-12      1
2005-07-11      1
2006-07-10      1
2008-07-14      1
2009-07-13      1
2010-07-12      1
2011-07-11      1
2014-07-14      1
2015-07-13      1
相关问题