以下是一个示例代码,展示了如何按id分组,并计算每个id的加入时间段:
import datetime
# 示例的加入时间数据
data = [
{'id': 1, 'join_time': datetime.datetime(2022, 1, 1, 10, 0)},
{'id': 2, 'join_time': datetime.datetime(2022, 1, 1, 11, 30)},
{'id': 1, 'join_time': datetime.datetime(2022, 1, 2, 9, 30)},
{'id': 2, 'join_time': datetime.datetime(2022, 1, 2, 10, 30)},
{'id': 1, 'join_time': datetime.datetime(2022, 1, 3, 14, 0)},
]
# 创建一个字典,用于存储每个id的加入时间段
time_periods = {}
# 遍历数据
for item in data:
id = item['id']
join_time = item['join_time']
# 如果id已经存在于字典中,则更新加入时间段
if id in time_periods:
time_periods[id]['end_time'] = join_time
# 如果id不存在于字典中,则添加新的时间段
else:
time_periods[id] = {'start_time': join_time, 'end_time': join_time}
# 打印每个id的加入时间段
for id, periods in time_periods.items():
start_time = periods['start_time']
end_time = periods['end_time']
print(f"ID {id}: {start_time} - {end_time}")
以上代码将根据示例的加入时间数据,按id分组,并计算每个id的加入时间段。输出结果如下:
ID 1: 2022-01-01 10:00:00 - 2022-01-03 14:00:00
ID 2: 2022-01-01 11:30:00 - 2022-01-02 10:30:00
请根据实际情况,将示例代码中的数据和逻辑进行适当修改。
下一篇:按ID分组的密集排名