1

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

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

我正在使用 pyspark 和考拉(不允许熊猫)。

这是一个例子:

有问题的df

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

4

1 回答 1

1

不确定这是否是您想要的...?我想你可以用它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}""")
于 2020-12-24T11:18:47.850 回答