【问题标题】:How to get week number from given date in range of 1 to 5 only, not in 1 to 52如何从给定日期获取仅在 1 到 5 范围内的周数,而不是在 1 到 52 范围内
【发布时间】:2019-09-03 12:59:32
【问题描述】:

我正在研究机器学习回归问题,我根据输入特征预测销售价值。在哪个日期是功能之一,我想从日期中获取月份和星期数。月份给出 1 到 12 是可以的。但是几周我得到 1 到 52 之间,这也是正确的,但我试图获得 1 到 5 范围内的周数,有些月份有 4 周,有些有 5 周。

我已经尝试了获取周数的可用方法,但它只给出了 1 到 52 的范围。我不能简单地将其除以 4,否则没有一个月会有 5 周。

这段代码给出的输出范围在 1 到 52 之间,我还尝试了其他几种方法。

df['Week'] = df['Date'].dt.week

如果特定日期属于一个月的第五周,它应该返回,而不是它应该给出第 5 周。

【问题讨论】:

  • "我正在尝试获取 1 到 5 范围内的周数,有些月份有几周,有些有 5" 嗯?如果日期是一年中的第 49 周,为什么您会期望得到除 49 之外的任何内容?
  • 您是否要获取相对于月份的周数?问题不清楚。
  • @DeepSpace 他想要一个月内的周数
  • @DeepSpace 任何超过 28 天的月份从第 5 周开始
  • @MurrayW 你是对的。我的意思是使用// 7(month_day - 1) // 7 + 1

标签: python pandas dataframe datetime


【解决方案1】:

在大多数情况下,周数是指一年中的一周。月份中的星期不是标准概念,因此未在 pandas 中实现。你可以自己实现它。参见例如this Stackoverflow 上的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2019-08-25
    • 2021-01-16
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多