我的数据中有不同的日期。我想把日期定为从星期六开始的一周。怎么做?
答案 0 :(得分:0)
我根据图片对你的问题的理解是:给定一个日期,生成一个日期,其中:
datetime.dayofweek() 方法返回 0..6 for Monday..Sunday.
import datetime
def most_recent_saturday(d):
day_adjustment = (dt.weekday() + 2) % 7
delta = datetime.timedelta(days=day_adjustment)
return dt - delta
for day in range(4, 11):
dt = datetime.datetime(2021, 3, day)
dt2 = most_recent_saturday(dt)
print("date: {}, day of week {}, saturday: {}".format(dt, dt.weekday(), dt2))
编辑:由于 OP 想要使用 Pandas 数据框,这将起作用(修改注释中给出的示例):
import datetime
import pandas as pd
vals = []
for day in range(4, 11):
dt = datetime.datetime(2021, 3, day)
vals.append(dt)
df = pd.DataFrame(data=vals, columns=['SYS_DATE'])
df['Week Commencing Saturday'] = pd.to_datetime(df['SYS_DATE']) - pd.offsets.Week(weekday=4) + pd.offsets.Day(1)
print(df)
输出:
SYS_DATE Week Commencing Saturday
0 2021-03-04 2021-02-27
1 2021-03-05 2021-02-27
2 2021-03-06 2021-03-06
3 2021-03-07 2021-03-06
4 2021-03-08 2021-03-06
5 2021-03-09 2021-03-06
6 2021-03-10 2021-03-06