gpt4 book ai didi

python - 如何创建基于一年中的星期的调度系统

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

我有一个数据框,其中包含日期、一年中的日期和星期。

我需要使用一年中的第几周来创建一个值从 1 到 5 的新列。

假设我在第 35 周,第 35 周的所有列都应该有 1 个,第 36 周的所有列应该有 2 个,依此类推。一旦到达第 40 周和第 5 周,新列中的数字需要从第 41 周的 1 开始,并以这种模式继续,无论数据范围有多长

def date_table(start='2019-08-26', end='2019-10-27'):
df = pd.DataFrame({"Date": pd.date_range(start, end)})
df["Day"] = df.Date.dt.weekday_name
df["Week"] = df.Date.dt.weekofyear
return df

最佳答案

使用模数和周数计算索引:

import pandas as pd

start='2019-08-26'
end='2019-10-27'
df = pd.DataFrame({"Date": pd.date_range(start, end)})
df["Day"] = df.Date.dt.weekday_name
df["Week"] = df.Date.dt.weekofyear
df["idx"] = df["Week"] % 5 +1 # n % 5 = 0..4 plus 1 == 1..5

print(df)

输出:

0  2019-08-26     Monday    35    1
[...]
6 2019-09-01 Sunday 35 1
7 2019-09-02 Monday 36 2
[...]
13 2019-09-08 Sunday 36 2
14 2019-09-09 Monday 37 3
[...]
20 2019-09-15 Sunday 37 3
21 2019-09-16 Monday 38 4
[...]
27 2019-09-22 Sunday 38 4
28 2019-09-23 Monday 39 5
[...]
34 2019-09-29 Sunday 39 5
35 2019-09-30 Monday 40 1
[...]

[63 rows x 4 columns]
<小时/>

如果您希望它从不被 5 整除的周数开始 - 您也可以通过减去所有周数的第一周的模 5 值来实现:

# startweeknumber:
startweekmod = df["Week"][0] % 5

# offset by inital weeks mod
df["idx"] = (df["Week"] - startweekmod) % 5 + 1

关于python - 如何创建基于一年中的星期的调度系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58026806/

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