Skip to content

Instantly share code, notes, and snippets.

@straypacket
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save straypacket/9756230 to your computer and use it in GitHub Desktop.
Save straypacket/9756230 to your computer and use it in GitHub Desktop.
Delay between processes
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