Проблема с таймсериями, когда мне нужно добавить другое число, чтобы получить будущее время в Python - PullRequest
1 голос
/ 26 мая 2020

Я новичок в python и анализе данных, и я выполняю задачу.

У меня есть фрейм данных, который имеет временные ряды и время (минуты) как целые числа, и я хочу произвести расчет, где время и минуты дают другое время, которое покажет, что техник занят / недоступен. смены (1-я и 2-я), поэтому я хочу, чтобы с 06:00 до 14:00 было доступно 8 технических специалистов.

Как только проблема возникает на производстве, технический специалист отправляется для ее решения, поэтому у меня есть 7 технических специалистов. доступны в то время. Между тем, если возникнет другая проблема, а первая проблема еще не решена, у меня есть 6 технических специалистов.

Столбец «Время простоя» представлен в минутах.

Я хочу получить следующий результат:

Date_Time           Line    Downtime   Issue    Owner       Avail. Technicians
2020-05-08 18:39:00 T10     32         Reason 1 Technician2 7
2020-05-08 19:20:00 T10     65         Reason 2 Technician3 7
2020-05-08 21:13:00 T14     20         Reason 1 Technician1 7
2020-05-08 21:26:00 T12     12         Reason 4 Technician4 6

Возможно ли достичь таких результатов?

Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать. Я постараюсь объяснить как можно лучше.

Большое вам спасибо!

1 Ответ

0 голосов
/ 26 мая 2020

IIU C, вы можете вычислить Done_Time и сравнить его с Date_Time:

new_df = (df.assign(Done_time=df.Date_Time + pd.to_timedelta(df.Downtime, unit='min'))
            .set_index('Owner',append=True)['Done_time']
            .unstack('Owner')
            .ffill()
         )

num_busy = (df['Date_Time'].values[:,None] < new_df.values).sum(1)

df['Avail.Tech'] = 8 - num_busy

Результат:

            Date_Time Line  Downtime     Issue        Owner  Avail.Tech
0 2020-05-08 18:39:00  T10        32  Reason 1  Technician2           7
1 2020-05-08 19:20:00  T10        65  Reason 2  Technician3           7
2 2020-05-08 21:13:00  T14        20  Reason 1  Technician1           7
3 2020-05-08 21:26:00  T12        12  Reason 4  Technician4           6
...