首页 > 解决方案 > 如何重新采样每小时时间序列以在特定时间开始并在 24 小时后结束

问题描述

我想从一天中的特定时间开始(在我的情况下,它将从 2020-02-01 06 UTC 开始)重新采样我的数据帧,包括每小时降水值到每天(24 小时的频率)。

2020-02-01 的每小时数据帧图像:

在此处输入图像描述

我试过了:

df = df.resample('24H',on='date').sum()

但这导致从 2020-02-01 06 UTC 到 2020-02-01 23 UTC 的每小时降水量总和,而不是到 2020-02-02 05 UTC 的整整 24 小时。

有没有可以用来解决这个问题的论据?我尝试了 origin = 'start',但结果是:

TypeError: resample() got an unexpected keyword argument 'origin'

任何指导都会有所帮助,谢谢!

标签: pythonpandasdataframepandas-resample

解决方案


您只需要升级 pandas 即可使用origin参数:

升级熊猫

pip install --upgrade pandas

示例代码

import pandas as pd

d = {'c1': range(60)}
df = pd.DataFrame(d)
df['date'] = pd.date_range('2020-02-01 06:00:00',
                                    periods=60,
                                    freq='H')


print(df.resample('24H', on='date', origin='start').sum())

print('sum of 1st 24: ', sum(range(24)))

输出

date                    
2020-02-01 06:00:00  276
2020-02-02 06:00:00  852
2020-02-03 06:00:00  642

sum of 1st 24:  276

推荐阅读