Last active
August 29, 2015 13:57
-
-
Save straypacket/9756230 to your computer and use it in GitHub Desktop.
Delay between processes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import numpy as np | |
import matplotlib.pyplot as plt | |
import pylab | |
import datetime as dt | |
## | |
# Response time analysis | |
df_tbi = pd.DataFrame(np.arange(1,8)) | |
df_tbi['response_cal_time'] = np.array([850,4345,19000,5827,3904,2756,8550]) | |
df_tbi['response_time'] = np.array([850,4345,13240,2947,1024,2756,5670]) | |
df_tbi['response_time_off'] = np.array([240,1650,5140,1147,360,1096,1950]) | |
# | |
df_ttns = pd.DataFrame(np.arange(1,6)) | |
df_ttns['response_cal_time'] = np.array([14214,2765,216,5690,2906]) | |
df_ttns['response_time'] = np.array([11334,2765, 216,1370,2906]) | |
df_ttns['response_time_off'] = np.array([3894,894, 216, 530,986]) | |
# Response time analysis with current reading | |
def gshow(df,start_time): | |
pylab.boxplot([df['response_cal_time'],df['response_time'],df['response_time_off']]) | |
# Handle weekends (only up to one weekend) | |
if dt.datetime.now().weekday() < dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M").weekday(): | |
# passed whole week | |
minutes = (dt.datetime.now() - (dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")-dt.timedelta(hours=48))).total_seconds() / 60 | |
off = (dt.datetime.now() - (dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")-dt.timedelta(hours=48))).days*(24-8)*60 | |
elif dt.datetime.now().weekday() >= 5: | |
# Mid-weekend | |
minutes = (dt.datetime.now() - (dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")-dt.timedelta(hours=(dt.datetime.now().weekday()-4)*24))).total_seconds() / 60 | |
off = (dt.datetime.now() - (dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")-dt.timedelta(hours=(dt.datetime.now().weekday()-4)))).days*(24-8)*60 | |
else: | |
# No weekend | |
minutes = (dt.datetime.now() - dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")).total_seconds() / 60 | |
off = (dt.datetime.now() - dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")).days*(24-8)*60 | |
cal_minutes = (dt.datetime.now() - dt.datetime.strptime(start_time, "%Y-%m-%d %H:%M")).total_seconds() / 60 | |
pylab.scatter([1], cal_minutes) | |
pylab.scatter([2], minutes) | |
pylab.scatter([3], minutes-off) | |
pylab.xticks([1,2,3],['Calendar days','Work days','Work time']) | |
plt.show() | |
gshow(df_tbi,"2014-03-14 18:00") | |
gshow(df_ttns,"2014-03-24 13:50") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment