在Python中,可以使用datetime模块来处理日期和时间相关的操作。下面是一个按日期分组为周的示例代码:
from datetime import datetime, timedelta
def group_by_week(dates):
# 将日期列表按照升序排序
sorted_dates = sorted(dates)
# 获取第一个日期的周一日期作为起始日期
first_date = sorted_dates[0]
start_date = first_date - timedelta(days=first_date.weekday())
# 创建一个字典来存储按周分组后的日期
grouped_dates = {}
for date in sorted_dates:
# 计算当前日期与起始日期之间的周数差
week_diff = (date - start_date).days // 7
# 将当前日期添加到对应的周列表中
if week_diff not in grouped_dates:
grouped_dates[week_diff] = []
grouped_dates[week_diff].append(date)
return grouped_dates
使用示例:
dates = [
datetime(2022, 1, 1),
datetime(2022, 1, 3),
datetime(2022, 1, 5),
datetime(2022, 1, 7),
datetime(2022, 1, 9),
datetime(2022, 1, 11)
]
grouped_dates = group_by_week(dates)
for week, week_dates in grouped_dates.items():
print(f"Week {week + 1}: {week_dates}")
输出结果:
Week 1: [datetime.datetime(2022, 1, 1, 0, 0), datetime.datetime(2022, 1, 3, 0, 0), datetime.datetime(2022, 1, 5, 0, 0), datetime.datetime(2022, 1, 7, 0, 0)]
Week 2: [datetime.datetime(2022, 1, 9, 0, 0), datetime.datetime(2022, 1, 11, 0, 0)]
以上代码将给定的日期列表按照周分组,并输出每个周的日期列表。
上一篇:按日期分组数据帧,添加字符计数