2015-02-03 12 views
5

Pandalar zaman çizelgeleri ve veri çerçeveleri için yeni ve bu basit görevi yerine getirmek için mücadele ediyorum. 1/1/2004 - 12/31/2008 tarihleri ​​arasında her gün için bir veri kümesine (1 boyutlu float32-Numpy dizisi) sahibim. Tarihler, tarihler nesneleri "tarihler" listesi olarak saklanır. Temel olarak, tüm yılların (1-365) her günün ortalama değeri olan tam bir "standart yıl" hesaplamak istiyorum. Bu benzer (?) Sorudan (Getting the average of a certain hour on weekdays over several years in a pandas dataframe) başladım, ancak istenen sonuca ulaşamadım - 365 "ortalama" günün bir zaman dizisi, ör. Ocak adlı bir Ocak ayı, 2. dört 1st ortalama ...Pandas'ta ortalama yılı (birkaç yıl içinde günlerin ortalaması) alın

küçük örnek komut dosyası: ay ve gündüz oldukça yılın ve günün daha

import numpy as np 
import pandas as pd 
import datetime 

startdate = datetime.datetime(2004, 1, 1) 
enddate = datetime.datetime(2008, 1, 1) 
days = (enddate + datetime.timedelta(days=1) - startdate).days 
data = np.random.random(days) 
dates = [startdate + datetime.timedelta(days=x) for x in range(0, days)] 

ts = pd.Series(data, dates) 
test = ts.groupby(lambda x: (x.year, x.day)).mean() 

cevap

6

Grup:

hızlı ve kolay
test = ts.groupby([ts.index.month, ts.index.day]).mean() 

verimleri

1 1  0.499264 
    2  0.449357 
    3  0.498883 
... 
12 17 0.408180 
    18 0.317682 
    19 0.467238 
...  
    29 0.413721 
    30 0.399180 
    31 0.828423 
Length: 366, dtype: float64 
+0

- teşekkür ederim! – HyperCube

+0

Teşekkürler, bunun için oldukça uzun bir süre arandı :) –