我正在使用Pandas来构建和处理数据。这是我的DataFrame:
我按分钟分组了许多日期时间,我进行了汇总,以便按分钟计算“比特率”分数的总和。 这是我的代码,有这个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)
想法?谢谢!
答案 0 :(得分:6)
使用resample。
df.resample('5Min').sum()
这假定您的索引已正确设置为DateTimeIndex。
您也可以使用TimeGrouper,因为重采样是对时间桶的分组操作。
df.groupby(pd.TimeGrouper('5Min')).sum()