Python Pandas - 每天索引作业数据

Python Pandas - Indexing job data per day

我有一个月的雇员和工作日期的数据框。我需要像这样在每一天为每份工作编制索引。

employee job_time nth_job
Harry 1/11/21 9:00 1
Harry 1/11/21 9:30 2
Harry 1/11/21 10:00 3
Harry 2/11/21 9:00 1
Harry 2/11/21 9:30 2
Ben 1/11/21 9:00 1
Ben 1/11/21 9:30 2
Ben 1/11/21 10:00 3
Ben 2/11/21 9:00 1
Ben 2/11/21 9:30 2

谢谢。

将列转换为日期时间,因此可以将 GroupBy.cumcount 与月度周期一起使用:

#format MM/DD/YY HH:MM
df['job_time'] = pd.to_datetime(df['job_time'], format='%m/%d/%y %H:%M')

#format DD/MM/YY HH:MM
#df['job_time'] = pd.to_datetime(df['job_time'], format='%d/%m/%y %H:%M')

df['nth'] = df.groupby(['employee', df['job_time'].dt.to_period('m')]).cumcount().add(1)
print (df)
  employee            job_time  nth_job  nth
0    Harry 2021-01-11 09:00:00        1    1
1    Harry 2021-01-11 09:30:00        2    2
2    Harry 2021-01-11 10:00:00        3    3
3    Harry 2021-02-11 09:00:00        1    1
4    Harry 2021-02-11 09:30:00        2    2
5      Ben 2021-01-11 09:00:00        1    1
6      Ben 2021-01-11 09:30:00        2    2
7      Ben 2021-01-11 10:00:00        3    3
8      Ben 2021-02-11 09:00:00        1    1
9      Ben 2021-02-11 09:30:00        2    2