You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中自定义星期映射(周日为1,周六为7)

实现自定义星期映射(周日=1,周一=2…周六=7)

你可以通过以下几种方式,基于现有dayofweek或isoweekday方法调整,实现目标映射规则:

方法1:字典映射(基于dayofweek)

dt.dayofweek的返回规则是:周一=0、周二=1、…周六=5、周日=6。直接定义映射字典完成转换:

# 定义自定义星期映射规则
day_mapping = {0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 1}
# 应用映射到DataFrame
power_data['Custom Day of Week'] = power_data['Date'].dt.dayofweek.map(day_mapping)

方法2:数学运算简化(基于isoweekday)

dt.isoweekday的返回规则是:周一=1、周二=2、…周六=6、周日=7。通过模运算+1即可快速转换:

power_data['Custom Day of Week'] = power_data['Date'].dt.isoweekday % 7 + 1

逻辑说明:

  • 周一到周六(返回值1-6):x%7结果为1-6,加1后对应目标的2-7
  • 周日(返回值7):7%7=0,加1后得到目标的1

方法3:Lambda条件转换(基于isoweekday)

如果觉得模运算不够直观,也可以用条件判断的Lambda表达式实现:

power_data['Custom Day of Week'] = power_data['Date'].dt.isoweekday.apply(lambda x: 1 if x == 7 else x + 1)

内容的提问来源于stack exchange,提问作者ARE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:50:39