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

Python Pandas 按日为员工工作记录生成序号的实现问题

实现步骤

  1. 先将job_time字段转换为pandas可识别的datetime类型,方便后续提取日期和时间排序
  2. 按「员工+工作日期」分组,对分组内的记录按job_time升序排序后生成从1开始的序列,就是所需的当日工作次数索引

示例代码

import pandas as pd

# 假设你的原始数据存放在df变量中
# 1. 转换时间格式,注意示例中的日期格式为日/月/年,format参数对应调整
df['job_time'] = pd.to_datetime(df['job_time'], format='%d/%m/%y %H:%M')

# 2. 生成nth_job字段,cumcount默认从0开始计数,加1后从1开始
df['nth_job'] = df.sort_values('job_time').groupby(
    ['employee', df['job_time'].dt.date]
).cumcount() + 1

如果需要保留原始DataFrame的行顺序,不因为排序打乱原有记录位置,可以用下面的写法:

import pandas as pd

df['original_idx'] = df.index
df['job_time'] = pd.to_datetime(df['job_time'], format='%d/%m/%y %H:%M')
df = df.sort_values('job_time')
df['nth_job'] = df.groupby(['employee', df['job_time'].dt.date]).cumcount() + 1
df = df.sort_values('original_idx').drop('original_idx', axis=1)

执行后得到的df就包含你需要的nth_job字段,输出结果和你给出的示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:36:07