2017-05-01 4 views

Antwort

0

Betrachten Sie den Datenrahmen df

df = pd.DataFrame(dict(A=range(100)), pd.date_range('2010-03-31', periods=100)) 

Beachten Sie, dass Sie von Anfang an von einem Monat zum Anfang des nächsten zu schneiden fragen. Typisches Python-Slicing enthält nicht den Endpunkt (obwohl loc tut). Ich nehme an, Sie wollten es ausschließen, da dies die Antwort bequem macht.

Verwendung resample mit einer Frequenz 'M'

df.resample('M').sum() 

       A 
2010-03-31  0 
2010-04-30 465 
2010-05-31 1426 
2010-06-30 2295 
2010-07-31 764 

Sie durch jeden Monat laufen kann

for m, grp in df.groupby(pd.TimeGrouper('M')): 
    # do stuff 
    print(m) 

2010-03-31 00:00:00 
2010-04-30 00:00:00 
2010-05-31 00:00:00 
2010-06-30 00:00:00 
2010-07-31 00:00:00 
Verwandte Themen