更改从 pandas 数据框获得的 slice/series 的年份

Changing the year of a slice/series obtained from a pandas dataframe

我得到了一个大型数据集,它是为我的团队导入的时间表(跨越多年)。我清理了数据(使其变长而不是变宽),但是我遇到了问题。

先解释一下数据:

现在我的问题是:

如您所见:条目 1137 和 1138 应该属于 2022 年。但是如何轻松更改它?我试过了:

for week, date in prepocessed_data_merged[['week', 'date']].values:
    # There are always more than 52 weeks in a year.
    # If the month of the date in week 52 is 1 (Jan), then something is wrong.
    if (week == 52) & (date.month == 1):
        prepocessed_data_merged.loc[(prepocessed_data_merged['week'] == week)
                                    & (prepocessed_data_merged['date']), 'date'] = ???

但正如您所料,这 returns 是一个系列,因为一天有三班轮班,因此需要更改年份的日期的三个条目。那么,如何更改所选 series/slice 的年份,同时在数据框中更改它?

我知道我可以使用:dt.replace(year=current_year+1) 但我如何在 preprocessed_data DF 中的这个选定系列上强制执行此 replace?提前致谢!

你试过了吗:

cond = prepocessed_data_merged['week'].eq(52) & prepocessed_data_merged['date'].dt.month.eq(1)
prepocessed_data_merged.loc[cond, 'date'] += pd.DateOffset(years=1)