我有一個月的員工和作業日期資料框。我需要像這樣為每一天索引每個作業。
| 員工 | 作業時間 | 第n_job |
|---|---|---|
| 哈利 | 1/11/21 9:00 | 1 |
| 哈利 | 1/11/21 9:30 | 2 |
| 哈利 | 1/11/21 10:00 | 3 |
| 哈利 | 2/11/21 9:00 | 1 |
| 哈利 | 2/11/21 9:30 | 2 |
| 本 | 1/11/21 9:00 | 1 |
| 本 | 1/11/21 9:30 | 2 |
| 本 | 1/11/21 10:00 | 3 |
| 本 | 2/11/21 9:00 | 1 |
| 本 | 2/11/21 9:30 | 2 |
謝謝你。
uj5u.com熱心網友回復:
將列轉換為日期時間,因此可以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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370808.html
