python - 带有偏移量的工作日重采样
问题描述
我正在尝试使用resample
带有偏移量的 Pandas 函数将每日频率数据重新采样到工作日,因此一周的最后一天变成星期四和星期天的开始。
这是到目前为止的代码:
import pandas as pd
resampled_data = df.resample('B', base=-1)
但它一直在重新采样,因此在重新采样中使用了周五,而排除了周日。我尝试了许多不同的值base
,loffset
但它不影响重采样。
请注意:原始数据使用 UTC 时间戳。时区是东部夏令时间。周日 UTC 21:00 - 周四 UTC 21:00。
解决方案
使用CustomBusinessDay()
. 我重新采样了整个一月,包括周五/周六,也包括在内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
推荐阅读
- linux - 使用 Buildroot 从自定义 .config 构建内核
- linux - 在 Annoy 库中使用 mmap() 在 Docker 容器之间共享 RAM
- r - 在 sparklyr 中使用外部参数创建和应用 ml_lib 管道
- laravel - 在首页添加滑块时出现问题:管理面板的工作方式就像我添加了一个新滑块
- wordpress - 我想用我创建的 .SVG 文件替换主页幻灯片上的默认图像
- r - 创建标志,指示年份变量是否在 data.table 中的 start:end 变量范围内
- javascript - 为什么 JavaScript 在使用对象作为键时会隐式字符串化参数值?
- python-3.7 - 有什么不同?
- python-3.x - python3默认类属性到同一类中的方法
- flutter - 远程更改列表中的小部件状态