我有8760小时的数据,并为其添加了一个日期时间索引。我要做的是将星期六的所有值替换为前一个星期五的值。
df = pandas.DataFrame(hourly_data, names=['values'])
df.index = pd.date_range('2015-01-01','2016-01-01', freq='H')[:8760]
df['weekday'] = df.index.weekday
所以df格式如下:
value weekday
2015-01-03 00:00:00 21 5
2015-01-03 01:00:00 21 5
2015-01-03 02:00:00 21 5
...
2015-01-03 00:00:00 12 6
2015-01-03 01:00:00 12 6
2015-01-03 02:00:00 12 6
我想要得到的是:
value weekday
2015-01-03 00:00:00 21 5
2015-01-03 01:00:00 21 5
2015-01-03 02:00:00 21 5
...
2015-01-03 00:00:00 21 6
2015-01-03 01:00:00 21 6
2015-01-03 02:00:00 21 6
但是我不知道怎么去那里。也许和offset
有关?
您可以使用loc
和掩码来选择您希望修改的行,并根据您的常规间隔分配shift
值:
df.loc[df.index.weekday==5] = df.shift(-24)