有比 dt.weekofyear 更好的解决方案吗?

Is there a better solution thant dt.weekofyear?

有没有比df['weekofyear'] = df['date'].dt.weekofyear更好的解决方案?

这个解决方案的问题是,有时,在 n 年的最后一周之后但在 n+1 年的第一周之前的几天被计为第 1 周而不是第 0 周。

我正在使用 pyspark 和 koalas(不允许 pandas)。

这是一个例子:

如您所见,第一列是日期,第二列是周,第三列是月,最后是年。

不确定这是否是您想要的...?我想您可以使用 case when 来替换一年中不需要的星期值。

df['weekofyear'] = df['date'].dt.weekofyear

df2 = ks.sql("""
select
    date,
    case when weekofyear = 1 and month = 12 then 53 else weekofyear end as weekofyear,
    month,
    year
from {df}""")