2016-09-23 5 views
2

私は、データの構造化と処理にパンダを使用しています。集計によるデータフレームのグループ化

enter image description here

私は分単位で多くの日付時刻をグループ化し、私は分単位で「ビットレートのスコアの合計を持っているために、集計をした:これは私のデータフレームです。 これは、このデータフレームを持っている私のコードだった:

def aggregate_data(data): 

    def delete_seconds(time): 

     return (datetime.datetime.strptime(time, '%Y-%m-%d %H:%M:%S')).replace(second=0) 


    data['new_time'] = data['beginning_time'].apply(delete_seconds) 
    df = (data[['new_time', 'bitrate']].groupby(['new_time'])).aggregate(np.sum) 

    return df 

は今、私はバケツのように5分で同じようなことをしたいです。私は5分でグループ私の日付時刻を行うためにワンドと平均このような.. 何かの操作を行います。(もちろん、このdosent作品!)

df.groupby([df.index.map(lambda t: t.5minute)]).aggregate(np.mean) 

アイデア?どうも !

+0

あなたのインデックスがすでにdatetimeIndexであるならば、あなただけの 'resample'使用することができます。' df.resample(「5分を」) ' – EdChum

答えて

4

resample

df.resample('5Min').sum()

これはあなたのインデックスが適切にDateTimeIndexとして設定されている前提としています。

また、リサンプリングは実際には時間バケットでのgroupby操作に過ぎないため、TimeGrouperを使用することもできます。

df.groupby(pd.TimeGrouper('5Min')).sum()

+0

を動作するはずです)(平均uが私はこれを行うのを助けることができますか? http://stackoverflow.com/questions/39691671/resampling-timeseries-with-a-given-timedelta – DataAddicted

関連する問題