按聚合时间分组DataFrame

时间:2016-09-23 15:37:07

标签: python pandas group-by aggregate aggregation

我正在使用Pandas来构建和处理数据。这是我的DataFrame:

enter image description here

我按分钟分组了许多日期时间,我进行了汇总,以便按分钟计算“比特率”分数的总和。 这是我的代码,有这个Dataframe:

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分钟并做一个意思.. 这样的事情:(这当然是有效的!)

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

想法?谢谢!

1 个答案:

答案 0 :(得分:6)

使用resample

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

这假定您的索引已正确设置为DateTimeIndex。

您也可以使用TimeGrouper,因为重采样是对时间桶的分组操作。

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