Pandas 将 5 分钟的数据重新采样为每小时平均值:日期问题

Pandas Resample 5 mins data to Hourly average : Date issue

我正在尝试将时间序列数据从 5 分钟频率重新采样为每小时平均值。

 df = pd.read_csv("my_data.csv", index_col=False, usecols=['A','B','C'])

输出:

         A            B      C
0   16-01-21 0:00   95.75   0.0
1   16-01-21 0:05   90.10   0.0
2   16-01-21 0:10   86.26   0.0
3   16-01-21 0:15   92.72   0.0
4   16-01-21 0:20   81.54   0.0

df.A= pd.to_datetime(df.A)

输出:

             A            B      C
0   2021-01-16 00:00:00 95.75   0.0
1   2021-01-16 00:05:00 90.10   0.0
2   2021-01-16 00:10:00 86.26   0.0
3   2021-01-16 00:15:00 92.72   0.0
4   2021-01-16 00:20:00 81.54   0.0

现在我将时间戳列设置为索引,

df.set_index('A', inplace=True)

当我尝试使用

重新采样时
df2 = df.resample('H').mean()

我明白了,

                       B         C
        A       
2021-01-02 00:00:00 79.970278   0.0
2021-01-02 01:00:00 77.951667   0.0
2021-01-02 02:00:00 77.610556   0.0
2021-01-02 03:00:00 80.800000   0.0
2021-01-02 04:00:00 84.305000   0.0

期待这种具有每小时平均值的时间戳,

       A             B         C
2021-01-16 00:00:00 79.970278   0.0
2021-01-16 01:00:00 77.951667   0.0
2021-01-16 02:00:00 77.610556   0.0
2021-01-16 03:00:00 80.800000   0.0
2021-01-16 04:00:00 84.305000   0.0

我不确定我在哪里犯了错误。帮帮我。

我认为这里的问题是一些日期时间被错误地转换了:

#default is month first in df.A= pd.to_datetime(df.A)
01-02-21 -> 2021-01-02

可能的解决方案:

df.A= pd.to_datetime(df.A, dayfirst=True)

或者:

df = pd.read_csv("my_data.csv", 
                 index_col=False, 
                 usecols=['A','B','C'], 
                 parse_dates=['A'], 
                 dayfirst=True)