以有效的方式聚合测量结果

问题描述 投票:0回答:1

我正在尝试将数据集中的测量值加在一起。我有每一分钟的测量值,我需要找到一整年每一小时的总和。

这就是我现在所拥有的。它有效,但速度很慢。可能还有更多问题,但这是有道理的。

time = []
data = []
if period == 'hour':
    for i in range(0, len(tvec), 60):
        
        timecomp = tvec.iloc[i:i+60]
        datacomp = data.iloc[i:i+60]
        time.append(timecomp.iloc[0]['year':'second'])
        data_summeret = datacomp.sum()
        data.append(data_summeret)

有更好的方法吗?

python python-3.x pandas aggregate
1个回答
0
投票

您应该尽可能使用矢量化操作。喜欢分组

import pandas as pd

# Assuming tvec is a datetime column in your DataFrame. If not - convert
df['hour'] = df['tvec'].dt.floor('H')  # Create a new column with the hour component of the timestamp

hourly_data = df.groupby('hour')['data'].sum().reset_index()

dt.floor('H') 用于将时间戳舍入到最接近的小时

© www.soinside.com 2019 - 2024. All rights reserved.