gpt4 book ai didi

python - 从 python 日期时间中提取星期并获取序列号?

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:26 25 4
gpt4 key购买 nike

我有一个数据框,其列名称订单日期包含从 2014 年 7 月到 2015 年 6 月的日期,格式为 2014-10-17 15:11:54。使用日期时间,我从日期中提取了周数。但是,我得到的起始周为 2014 年 7 月的 27,而 2015 年 1 月的起始周又从第 1 周开始。我想要的是 2014 年 7 月,第 1 周一直持续到 2015 年 6 月,并以 53 结束。

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

使用上面的代码获取之后的周数,2014 年 7 月使用时为 1

def time_period(x):
if df.Week >= 26:
return df.Week -25
else:
return df.Week +28
df['week_serial'] = df.Week.apply(lambda x: time_period(x))

这会产生错误 - 系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

最佳答案

既然 df.Week 已经包含周数,该函数应该如下所示:

def time_period(<b>x</b>):
if <b>x</b> >= 26:
return <b>x</b>-25
else:
return <b>x</b>+28

但我认为您基本上是在寻找模运算:

df['week_serial'] = (df['Week'] + 27) <b>% 53</b> + 1

这会将 26 映射到 1 上,将 27 映射到 2 上,等等;以及 53 上的 2552 上的 24 等。

对于示例输入:

>>> df
Week
0 13
1 49
2 47
3 12
4 35
5 17
6 1
7 46
8 19
9 0

我们得到:

>>> (df['Week'] + 27) % 53 + 1
0 41
1 24
2 22
3 40
4 10
5 45
6 29
7 21
8 47
9 28
Name: Week, dtype: int64

关于python - 从 python 日期时间中提取星期并获取序列号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com