2017-07-20 21 views
1
 id  vi  dates  f_id 
0 5532714 0.549501 2015-07-07 ff_22 
1 5532715 0.540969 2015-07-08 ff_22 
2 5532716 0.531477 2015-07-09 ff_22 
3 5532717 0.521029 2015-07-10 ff_22 
4 5532718 0.509694 2015-07-11 ff_22 

上記のデータフレームでは、毎年平均の年間値を求めたいと思います。これは動作しません:*** AttributeError: 'Series' object has no attribute 'year' はどのようにこの問題を解決するには:日付のカラムを持つパンダのデータフレームの年平均を見つける

df.groupby(df.dates.year)['vi'].transform(mean) 

は、私はこのエラーを取得しますか?

答えて

3

その後、.dt.yearとして.dtアクセサを使用して、の日付が日時DTYPEであることを確認してみましょう:

df['dates'] = pd.to_datetime(df.dates) 
df.groupby(df.dates.dt.year)['vi'].transform('mean') 

は出力:あなたはまた、周波数A

pd.TimeGrouperを使用することができます

0 0.530534 
1 0.530534 
2 0.530534 
3 0.530534 
4 0.530534 
Name: vi, dtype: float64 
+0

おかげ@Scott、これは動作します! – user308827

+0

あなたは大歓迎です。 –

0

4年間の日々のデータで構成されるデータフレームdfを考えてみましょう

tidx = pd.date_range('2010-01-01', '2013-12-31', name='dates') 

np.random.seed([3,1415]) 
df = pd.DataFrame(dict(vi=np.random.rand(tidx.size)), tidx) 

df.groupby(pd.TimeGrouper('A')).mean() 

        vi 
dates    
2010-12-31 0.465121 
2011-12-31 0.511640 
2012-12-31 0.491363 
2013-12-31 0.516614 
関連する問題