Python 如何对每小时的时间序列重新采样,使其从特定的一小时开始,并在24小时后精确结束

Python 如何对每小时的时间序列重新采样,使其从特定的一小时开始,并在24小时后精确结束,python,pandas,dataframe,pandas-resample,Python,Pandas,Dataframe,Pandas Resample,我想从一天中的某个特定小时开始(在我的情况下,它将从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到2020-02-01 23 UTC的整整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到2020-02-01 23 UTC的整整24小时

是否有可以用来解决此问题的参数?我尝试了origin='start',但结果是:

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

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

您只需升级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

从熊猫1.1.0开始,重新取样的起源是新的。检查你的熊猫版本。