You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按EMPL_NO分组对CSV日期按90天间隔归类的实现方法咨询

实现方案

你可以通过Python的pandas库快速完成该需求,具体实现步骤如下:

依赖安装

如果未安装pandas,先执行安装命令:
pip install pandas

完整实现代码

import pandas as pd
from datetime import timedelta

# 读取CSV文件,替换为你本地的文件路径
df = pd.read_csv('test.csv')
# 转换日期字段为datetime格式,方便计算时间差
df['DATE_INTERNE_INSPECTION'] = pd.to_datetime(df['DATE_INTERNE_INSPECTION'])

result = []
# 按EMPL_NO主键分组处理每个员工的日期
for empl_no, group in df.groupby('EMPL_NO'):
    # 对当前员工的所有日期按升序排序
    sorted_dates = group['DATE_INTERNE_INSPECTION'].sort_values().tolist()
    if not sorted_dates:
        continue
    # 初始化第一个分组
    current_group = [sorted_dates[0]]
    current_group_start = sorted_dates[0]
    # 遍历剩余日期分组
    for dt in sorted_dates[1:]:
        # 和当前分组的起始日期差值≤90天则归入当前组
        if (dt - current_group_start).days <= 90:
            current_group.append(dt)
        # 差值超过90天则保存当前组,创建新分组
        else:
            result.append([empl_no] + [d.strftime('%Y-%m-%d') for d in current_group])
            current_group = [dt]
            current_group_start = dt
    # 保存最后一个未处理的分组
    result.append([empl_no] + [d.strftime('%Y-%m-%d') for d in current_group])

# 打印输出结果
for item in result:
    print(', '.join(map(str, item)))

# 【可选】将结果写入新的CSV文件
# output_df = pd.DataFrame(result)
# output_df.to_csv('date_group_result.csv', index=False, header=False)

运行输出

执行后输出结果和你预期的一致:

5, 2023-05-29, 2023-06-03, 2023-06-05
5, 2024-05-29, 2024-06-03, 2024-06-05
5, 2026-06-05
12, 2021-06-05
12, 2023-06-05

内容的提问来源于stack exchange,提问作者Chadi N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:07