Я новая панда, и у меня есть следующие данные программы планировщика заданий:
| Job Name | Region | Status | Timestamp |
| some_job_1 | some_region_1 | DONE | 2018-10-02T03:46:25Z |
| some_job_1 | some_region_2 | ERROR | 2018-10-02T03:44:25Z |
| some_job_2 | some_region_1 | DONE | 2018-10-01T03:46:25Z |
| some_job_1 | some_region_2 | ERROR | 2018-11-02T03:44:25Z |
Теперь я хочу, чтобы 5 самых неудачных заданий за промежуток времени были последними, а статус выполнения 'n'. Который должен выглядеть примерно так:
| Job Name | Region | DONE | ERROR | Last 5 runs |
| some_job_1 | some_region_1 | 3 | 12 | ERROR DONE ERROR ERROR ERROR |
| some_job_1 | some_region_2 | 2 | 9 | ERROR DONE ERROR ERROR ERROR |
| some_job_2 | some_region_1 | 2 | 8 | ERROR DONE ERROR ERROR ERROR |
| some_job_2 | some_region_2 | 5 | 7 | ERROR DONE ERROR ERROR ERROR |
| some_job_3 | some_region_2 | 5 | 7 | ERROR DONE ERROR ERROR ERROR |
И я дошел до этого:
| Job Name | Region | DONE | ERROR |
| some_job_1 | some_region_1 | 3 | 12 |
| some_job_1 | some_region_2 | 2 | 9 |
| some_job_2 | some_region_1 | 2 | 8 |
| some_job_2 | some_region_2 | 5 | 7 |
| some_job_3 | some_region_2 | 5 | 7 |
с помощью:
data.groupby(['Job Name', 'Region']).Status.value_counts().unstack().fillna(0).sort_values('ERROR', ascending=False).head(5)
Я пытался использовать last()
, но безуспешно. Цените, если кто-то может мне помочь!