是否有Pandas函数可以将每天的小时数据(如2021-01-01 01:00:00至2021-01-02 00:00:



我有这个数据集,它包含一天中每小时后观察到的数据。由于观测是在每小时之后进行的,因此数据从01:00:00开始,到第二天00:00:00结束。

有没有办法将这些数据分组为一天,从01小时开始,到00小时结束。

2021-01-01 01:00:00  22.5
2021-01-01 02:00:00  25.3
.
.
.
2021-01-01 23:00:00  30.2
2021-01-02 00:00:00  28.6
2021-01-02 01:00:00  29.2
2021-01-02 02:00:00  30.2
.
.
.
2021-01-02 23:00:00  28.2
2021-01-03 00:00:00  28.0

我试过PD.Grouper,但它从00-23小时开始分组。

df_Paris['DateTime'] = pd.to_datetime(df_Paris['DateTime'], format='%Y-%m-%d')
davg_df = df_Paris.groupby(pd.Grouper(freq='D', key='DateTime')).mean()

但我需要对数据进行分组,如第1天01:00:00-第2天00:00:00。有办法做到这一点吗?

感谢

您可以创建一个辅助列,即"DateTime"减去一小时,并使用它进行分组。

例如:

import pandas as pd
df = pd.DataFrame({'DateTime': ["2020-01-01 01:00", "2020-01-02 00:00",
"2020-01-02 01:00", "2020-01-03 00:00"],
'value': [1, 1, 3, 3]})
df['DateTime'] = pd.to_datetime(df['DateTime'])
df['helper'] = df['DateTime'] - pd.Timedelta(hours=1)
davg_df = df.groupby(pd.Grouper(freq='D', key='helper')).mean()
# davg_df
#             value
# helper           
# 2020-01-01      1
# 2020-01-02      3

相关内容

最新更新