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
我有一个月的雇员和工作日期的数据框。我需要像这样在每一天为每份工作编制索引。
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