我有这个数据集,它包含一天中每小时后观察到的数据。由于观测是在每小时之后进行的,因此数据从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