我希望在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)]
答案 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