我正在尝试将数据集中的测量值加在一起。我有每一分钟的测量值,我需要找到一整年每一小时的总和。
这就是我现在所拥有的。它有效,但速度很慢。可能还有更多问题,但这是有道理的。
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)
有更好的方法吗?
您应该尽可能使用矢量化操作。喜欢分组
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') 用于将时间戳舍入到最接近的小时