营业日重采样,偏移

时间:2020-08-24 11:35:03

标签: python pandas

我正在尝试使用Pandas resample函数将每日频率数据重新采样到工作日,并使用偏移量,以便将一周的最后一天变为周四,并将周日开始。

这是到目前为止的代码:

import pandas as pd

resampled_data = df.resample('B', base=-1)

但是它一直在重新采样,因此在重新采样中使用了星期五,但不包括星期日。我为baseloffset尝试了许多不同的值,但这并没有影响重采样。

请注意:原始数据使用的是UTC时间戳。时区是美国东部夏令时间。 UTC周日21:00-UTC周四21:00。

1 个答案:

答案 0 :(得分:0)

使用CustomBusinessDay()。我已经对整个1月的采样进行了重新采样,其中包括Fri / Sat,还包括day_name()dayofweek,以表明它有效。

import datetime as dt

df = pd.DataFrame(index=pd.date_range(dt.datetime(2020,1,1), dt.datetime(2020,2,1)))
bd = pd.tseries.offsets.CustomBusinessDay(n=1, 
                                          weekmask="Sun Mon Tue Wed Thu")
df = df.resample(rule=bd).first().assign(
    day=lambda dfa: dfa.index.day_name(),
    dn=lambda dfa: dfa.index.dayofweek
    
)

输出

                  day  dn
2020-01-01  Wednesday   2
2020-01-02   Thursday   3
2020-01-05     Sunday   6
2020-01-06     Monday   0
2020-01-07    Tuesday   1
2020-01-08  Wednesday   2
2020-01-09   Thursday   3
2020-01-12     Sunday   6
2020-01-13     Monday   0
2020-01-14    Tuesday   1
2020-01-15  Wednesday   2
2020-01-16   Thursday   3
2020-01-19     Sunday   6
2020-01-20     Monday   0
2020-01-21    Tuesday   1
2020-01-22  Wednesday   2
2020-01-23   Thursday   3
2020-01-26     Sunday   6
2020-01-27     Monday   0
2020-01-28    Tuesday   1
2020-01-29  Wednesday   2
2020-01-30   Thursday   3