2016-07-11 15 views
0

Ich möchte die erste Montag im Juli erhalten, die für eine Liste von Daten von mehr als 10. Juli, und ich frage mich, ob es eine elegante Lösung ist, die für Schleifen vermeidet/Listenverständnis. Hier ist mein Code so weit, dass alle Juli mondays größer ist als der 10. gibt:ersten Tag der Woche größer als x

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

http://stackoverflow.com/questions/6558535/python-find-the-date-for-the-first-monday-after-a-given-a-date – Tim

Antwort

1

IIUC Sie können es auf diese Weise tun:

get Liste der 2. Montag im angegebenen Datumsbereich

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

sie filtern, so dass wir diese erst im Juli mit day >= 10

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

erzeugen eine entsprechende 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 
+0

@ NickD1, hat das geholfen? – MaxU

Verwandte Themen