如何使用 pandas 检查时间序列是否属于去年?

How to check if the time-series belongs to last year using pandas?

我正在制作一个应用程序,用户可以在其中上传他们的时间序列 CSV 数据。我希望用户始终上传 去年的数据 (2022 年,时间序列应该是 2021 年;2023 年,数据应该是 2022 年,依此类推)因为我有检查数据是否来自去年。

有没有一种方法可以在读取 csv 时使用 pandas 进行检查(我通过 pd.read_csv(my_file) 读取 csv)?

时间序列样本

                 dates   values
0  2021-01-01 01:00:00  371.428
1  2021-01-01 02:00:00  390.194
2  2021-01-01 03:00:00  349.924
3  2021-01-01 04:00:00  342.886
4  2021-01-01 05:00:00  331.157
.
.
.
.
8779  2021-12-31 20:00:00  515.307
8780  2021-12-31 21:00:00  432.811
8781  2021-12-31 22:00:00  421.082
8782  2021-12-31 23:00:00  394.886
8783  2022-01-01 00:00:00  373.773

最后一行始终是 00:00

的当年

我认为不是,需要先读取值。您可以先将值转换为 DataFrame,然后通过 Series.dt.year with Timestamp.year subtracted 1 and for test if all values match use Series.all:

比较年份
df = pd.read_csv(my_file, parse_dates=['dates'])
test = df['dates'].dt.year.iloc[:-1].eq(pd.Timestamp('now').year - 1).all()