如何使用 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()
我正在制作一个应用程序,用户可以在其中上传他们的时间序列 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()