我想将索引日期时间的df分组为小时。源数据间隔为5分钟,但仅从上午6点至下午6点,夜间无数据。
我的代码是这样的:
hourly= df.resample('60T').sum().sort_index().dropna(how='any')
但是,结果会产生额外的夜间时间,使每一天变得完整的24小时。它为夜间提供零值。我不要我只需要几个小时就可以尊重源数据。
请帮助。
答案 0 :(得分:2)
您可以对已计算的序列使用groupby
,在这种情况下,每隔1小时间隔铺地板:
# example dataframe
dates = ['2018-01-01 15:01:00', '2018-01-01 15:23:15', '2018-01-01 16:30:05']
df = pd.DataFrame({'date': pd.to_datetime(L), 'values': [1, 2, 3]})
res = df.groupby(df['date'].dt.floor('60min'))['values'].sum()
print(res)
date
2018-01-01 15:00:00 3
2018-01-01 16:00:00 3
Name: values, dtype: int64