Разница во времени между повторными состояниями - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в Python, и поэтому мои вопросы могут показаться тривиальными.Буду признателен за вашу поддержку или за любые возможные проблемы.

Проблема:

Существует около 10 различных состояний;Порядок перемещается по разным состояниям, и по окончании состояния создается отметка времени.Например, ниже, Есть четыре состояния A, B, C, D.

A 10 AM
B  1 PM
C  4 Pm
D  5 PM
Time spent in B = 1PM -10AM = 3.

Проверьте это тоже, пожалуйста.Как я предполагаю, что ввод и вывод: -Пожалуйста, проверьте этот файл 'Sampleinputoutput' здесь -drive.google.com/open?id=15lBHI-TA0zLWfYcjb54hJkxjn0xv-XWx;

В некоторых случаях одно и то же состояние может возникать несколько раз,Следовательно, нам нужна переменная для хранения значения разницы во времени для одного состояния

Ниже сырых данных csv и моего кода. Есть несколько заказов, для которых необходимо выполнить этот расчет.однако для простоты у меня есть данные только для одного заказа.

Образцы данных:

   Order   States  modified_at
    1   Resolved    2018-06-18T15:05:52.2460000
    1   Edited      2018-05-24T21:44:07.9030000
        Pending PO Creation 2018-06-06T19:52:51.5990000
    1   Assigned    2018-05-24T17:46:03.2090000
    1   Edited      2018-06-04T15:02:57.5130000
    1   Draft       2018-05-24T17:45:07.9960000
    1   PO Placed   2018-06-06T20:49:37.6540000
    1   Edited      2018-06-04T11:18:13.9830000
    1   Edited      2018-05-24T17:45:39.4680000
    1   Pending Approval    2018-05-24T21:48:23.9180000
    1   Edited      2018-06-06T21:00:19.6350000
    1   Submitted   2018-05-24T21:44:37.8830000
    1   Edited      2018-05-30T11:19:36.5460000
    1   Edited      2018-05-25T11:16:07.9690000
    1   Edited      2018-05-24T21:43:35.0770000
    1   Assigned    2018-06-07T18:39:00.2580000
    1   Pending Review  2018-05-24T17:45:10.5980000
    1   Pending PO Submission   2018-06-06T14:16:26.6580000

Код, который я пробовал:

import pandas as pd
import datetime as datetime
from dateutil.relativedelta import relativedelta

fileName = "SamplePR.csv"

df = pd.read_csv(fileName, delimiter=',')

df['modified_at'] = pd.to_datetime(df.modified_at)

df = df.sort_values(by='modified_at')
df = df.reset_index(drop=True)

df1  = df[:-1]
df2 = df[1:]

dfm1 = df1['modified_at']
dfm2 = df2['modified_at']

dfm1 = dfm1.reset_index(drop=True)
dfm2 = dfm2.reset_index(drop=True)

for i in range(len(df)-1):
start = datetime.datetime.strptime(str(dfm1[i]), '%Y-%m-%d %H:%M:%S')
ends  = datetime.datetime.strptime(str(dfm2[i]), '%Y-%m-%d %H:%M:%S')
diff = relativedelta(ends, start)
print (diff)

Пока я пыталсяотсортировать список по времени, а затем рассчитать разницу между двумя состояниями.

Буду очень признателен, если кто-нибудь поможет с логикой или укажет правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...