Import and set style


In [2]:
import pandas as pd
%matplotlib inline
plt.style.use('forkedriver')
figsize(15,5)

read the data


In [3]:
df = pd.read_csv('waitTime.csv',parse_dates=[0],index_col=[0])

trim some of the data and take the average


In [4]:
trimmed = df['2013-02-11':'2013-03-15']
trimmed['weekday'] = trimmed.index.weekday
wtavg = trimmed.groupby('weekday').aggregate(mean)
wtavg.index = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
wtavg = wtavg[:5]
near_oak = ['San Francisco', 'Hayward', 'Daly City', 'Oakland']

plot some averages for dmvs close to oakland


In [20]:
wtavg_ax = wtavg[near_oak].plot(kind='bar')
plt.title('Average Non-appointment Wait Times\n for Offices Near Oakland')
plt.ylabel('Time (minutes)')
locs,labels =plt.xticks()
ignored = plt.xticks(locs,['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],rotation='horizontal')


Time to try an ANOVA test for the mean value of a specific Tuesday:


In [59]:
tuesday = trimmed['2013-03-11 08':'2013-03-11 17'].resample('5min')
tuesday = tuesday.drop('weekday',1)
tues_means = tuesday.mean()
tues_std = tuesday.std()


Out[59]:
Alturas           103.500000
Arleta             71.846001
Auburn             35.269032
Bakersfield        63.630249
Bakersfield-SW    122.099232
Banning            45.939052
Barstow            45.625000
Bell Gardens       75.928571
Bellflower         58.366115
Bishop             51.500000
Blythe             39.000000
Brawley            34.660931
Capitola           30.603629
Carmichael         44.969505
Chico              34.550498
...
Visalia                 26.860178
Walnut Creek            56.811116
Watsonville             38.658857
Weaverville             52.700000
West Covina            106.649556
West Hollywood          63.233333
West Sacramento-CDL     66.692308
Westminster             42.800499
Whittier                54.745091
Willows                 72.250000
Winnetka                40.633834
Woodland                32.786739
Yreka                   49.272727
Yuba City               64.312763
Unnamed: 175                  NaN
Length: 175, dtype: float64

In [17]:
trimmed = df['2013-02-11':'2013-03-15']
retrim = trimmed.resample('5min')

In [18]:
cleaned = retrim[retrim.index.dayofweek < 5]
cleaned = cleaned[cleaned.index.hour > 7]
cleaned = cleaned[cleaned.index.hour < 18]


Out[18]:
Alturas Arleta Auburn Bakersfield Bakersfield-SW Banning Barstow Bell Gardens Bellflower Bishop Blythe Brawley Capitola Carmichael Chico Chula Vista Clovis Coalinga Colusa Compton
Time Stamp
2013-02-11 08:00:00 NaN 0.000000 0.000000 0.000000 0.181818 0.000000 NaN NaN 0.000000 NaN NaN 0.000000 0.000000 0.000000 0.727273 0.545455 0.000000 NaN NaN 0.000000 ...
2013-02-11 08:05:00 NaN 1.571429 0.357143 0.769231 3.714286 0.357143 NaN NaN 1.142857 NaN NaN 0.000000 0.000000 0.000000 3.714286 2.714286 0.357143 NaN NaN 2.076923 ...
2013-02-11 08:10:00 NaN 5.461538 4.928571 5.571429 9.571429 5.357143 NaN NaN 6.571429 NaN NaN 0.000000 2.571429 3.000000 7.428571 8.357143 5.571429 NaN NaN 6.142857 ...
2013-02-11 08:15:00 NaN 9.000000 6.571429 10.428571 14.428571 8.642857 NaN NaN 10.642857 NaN NaN 1.642857 5.714286 6.571429 7.500000 12.428571 10.428571 9 NaN 9.428571 ...
2013-02-11 08:20:00 NaN 10.714286 3.214286 13.285714 19.428571 13.071429 NaN NaN 15.428571 NaN 7 0.214286 6.846154 10.500000 5.714286 17.285714 15.571429 NaN NaN 10.857143 ...
2013-02-11 08:25:00 NaN 11.538462 0.000000 15.692308 24.461538 17.615385 NaN NaN 17.615385 NaN NaN 1.769231 11.461538 14.461538 10.461538 20.461538 20.461538 NaN NaN 13.461538 ...
2013-02-11 08:30:00 NaN 6.357143 0.000000 19.571429 29.571429 22.642857 NaN NaN 21.142857 NaN NaN 5.071429 16.571429 18.714286 13.000000 24.785714 24.357143 NaN NaN 14.142857 ...
2013-02-11 08:35:00 NaN 2.714286 2.428571 22.923077 34.428571 26.428571 NaN NaN 22.428571 NaN NaN 4.428571 20.000000 18.714286 17.428571 28.428571 26.785714 NaN NaN 17.000000 ...
2013-02-11 08:40:00 NaN 0.769231 7.538462 27.538462 38.769231 30.923077 NaN NaN 26.230769 NaN 22 9.538462 23.307692 18.923077 21.615385 32.769231 31.538462 NaN NaN 19.923077 ...
2013-02-11 08:45:00 NaN 0.428571 13.230769 25.571429 38.857143 34.857143 NaN NaN 27.785714 14 NaN 13.857143 26.857143 17.928571 24.785714 34.357143 35.928571 NaN NaN 22.357143 ...
2013-02-11 08:50:00 NaN 0.000000 17.142857 23.714286 44.214286 40.071429 NaN NaN 34.214286 NaN NaN 19.142857 15.214286 14.357143 27.928571 37.928571 40.285714 NaN NaN 24.642857 ...
2013-02-11 08:55:00 NaN 3.153846 22.153846 26.307692 49.307692 44.461538 NaN NaN 39.153846 NaN NaN 14.250000 7.692308 15.153846 32.153846 34.307692 45.230769 NaN NaN 27.769231 ...
2013-02-11 09:00:00 NaN 4.500000 26.714286 30.071429 53.714286 48.714286 NaN 18 41.928571 NaN NaN 10.428571 0.857143 16.214286 23.071429 36.357143 49.785714 NaN NaN 25.928571 ...
2013-02-11 09:05:00 20 7.000000 33.571429 32.214286 59.428571 54.000000 44 NaN 41.428571 NaN NaN 0.428571 0.000000 19.857143 18.857143 35.071429 53.714286 NaN NaN 28.142857 ...
2013-02-11 09:10:00 NaN 8.538462 36.769231 25.461538 64.000000 57.615385 NaN NaN 37.692308 NaN NaN 0.000000 0.153846 18.384615 13.923077 35.846154 56.384615 NaN NaN 28.846154 ...
2013-02-11 09:15:00 NaN 6.928571 41.571429 29.500000 67.214286 62.571429 NaN NaN 36.928571 44 NaN 0.000000 0.928571 22.071429 17.500000 29.785714 61.571429 NaN NaN 24.071429 ...
2013-02-11 09:20:00 NaN 1.692308 47.384615 35.384615 73.538462 65.153846 4 NaN 35.461538 NaN NaN 0.000000 3.846154 16.923077 5.230769 30.923077 66.538462 49 NaN 25.076923 ...
2013-02-11 09:25:00 NaN 1.428571 49.428571 40.000000 65.642857 73.000000 NaN 22 39.000000 NaN NaN 0.000000 5.000000 13.428571 7.000000 30.642857 65.461538 NaN 13 29.000000 ...
2013-02-11 09:30:00 NaN 5.615385 57.000000 41.846154 71.000000 78.000000 NaN NaN 41.307692 NaN NaN 1.076923 3.307692 17.230769 12.000000 34.153846 76.384615 NaN NaN 33.615385 ...
2013-02-11 09:35:00 NaN 10.000000 62.428571 40.285714 64.714286 81.714286 NaN 15 39.071429 NaN NaN 6.461538 6.428571 19.461538 16.714286 37.357143 81.428571 NaN 9 36.214286 ...
2013-02-11 09:40:00 NaN 16.230769 67.538462 41.307692 71.538462 81.076923 NaN NaN 43.538462 NaN NaN 11.538462 11.538462 19.000000 22.538462 42.769231 86.538462 NaN NaN 39.615385 ...
2013-02-11 09:45:00 NaN 18.142857 72.285714 39.076923 73.785714 84.142857 NaN NaN 48.214286 NaN NaN 7.714286 15.857143 17.500000 25.428571 46.285714 91.214286 NaN NaN 40.500000 ...
2013-02-11 09:50:00 NaN 23.692308 71.538462 43.846154 81.692308 89.692308 NaN NaN 53.076923 NaN NaN 0.000000 8.230769 11.076923 23.769231 48.230769 90.461538 NaN NaN 40.461538 ...
2013-02-11 09:55:00 NaN 29.153846 55.785714 43.285714 85.642857 90.000000 NaN NaN 55.357143 NaN NaN 0.000000 8.500000 8.357143 21.857143 50.642857 101.428571 35 NaN 43.214286 ...
2013-02-11 10:00:00 NaN 32.461538 35.846154 37.307692 91.461538 89.461538 NaN NaN 59.461538 NaN NaN 0.000000 11.461538 10.769231 22.230769 56.461538 95.461538 NaN NaN 44.230769 ...
2013-02-11 10:05:00 NaN 34.000000 25.076923 39.692308 96.692308 93.307692 NaN NaN 63.692308 NaN 0 0.000000 13.769231 12.692308 19.923077 58.769231 99.307692 NaN NaN 46.538462 ...
2013-02-11 10:10:00 NaN 36.500000 30.428571 36.428571 101.428571 98.428571 NaN NaN 65.428571 NaN NaN 0.428571 14.500000 17.571429 23.571429 59.642857 75.714286 NaN NaN 43.928571 ...
2013-02-11 10:15:00 NaN 39.083333 35.307692 41.307692 101.153846 99.307692 NaN 34 69.307692 NaN NaN 4.307692 7.000000 18.615385 28.307692 54.230769 48.538462 96 NaN 41.538462 ...
2013-02-11 10:20:00 NaN 43.142857 38.428571 45.071429 111.142857 108.142857 NaN NaN 69.500000 NaN NaN 9.142857 5.857143 21.214286 33.142857 56.230769 47.571429 NaN NaN 43.285714 ...
2013-02-11 10:25:00 NaN 38.307692 41.769231 45.923077 110.076923 113.307692 NaN NaN 67.083333 NaN NaN 11.615385 9.307692 23.538462 38.333333 56.230769 41.153846 NaN NaN 45.916667 ...
2013-02-11 10:30:00 NaN 30.923077 47.230769 31.230769 121.230769 110.692308 NaN NaN 69.846154 NaN NaN 12.230769 14.230769 27.230769 38.923077 60.153846 43.750000 NaN NaN 50.384615 ...
2013-02-11 10:35:00 NaN 36.428571 52.076923 34.285714 116.142857 117.642857 NaN NaN 64.928571 NaN 32 5.285714 12.785714 30.928571 41.071429 64.071429 39.071429 NaN NaN 55.285714 ...
2013-02-11 10:40:00 NaN 22.307692 57.538462 30.384615 93.307692 120.538462 NaN NaN 66.461538 NaN NaN 7.538462 15.923077 35.384615 46.384615 67.692308 29.538462 NaN NaN 57.076923 ...
2013-02-11 10:45:00 NaN 16.214286 62.142857 31.153846 83.071429 118.285714 NaN NaN 62.928571 27 NaN 2.142857 20.785714 35.428571 44.642857 68.714286 34.071429 NaN NaN 57.857143 ...
2013-02-11 10:50:00 NaN 17.000000 67.538462 36.692308 82.692308 130.692308 NaN 75 54.692308 24 77 2.692308 8.461538 35.230769 45.692308 62.923077 39.692308 NaN NaN 59.230769 ...
2013-02-11 10:55:00 NaN 1.230769 72.307692 41.307692 87.307692 135.307692 NaN 87 53.923077 NaN NaN 7.307692 5.923077 37.153846 45.307692 59.461538 44.000000 59 NaN 58.846154 ...
2013-02-11 11:00:00 NaN 3.285714 77.428571 44.714286 58.642857 140.214286 NaN NaN 42.071429 NaN NaN 11.357143 4.285714 38.692308 50.692308 57.714286 45.714286 NaN NaN 58.357143 ...
2013-02-11 11:05:00 NaN 5.384615 82.307692 48.307692 64.307692 135.461538 39 NaN 46.307692 NaN 88 4.615385 8.307692 39.923077 55.307692 51.769231 54.230769 NaN NaN 57.769231 ...
2013-02-11 11:10:00 NaN 7.384615 87.384615 53.076923 66.153846 117.538462 NaN NaN 45.692308 NaN NaN 6.384615 19.923077 41.769231 58.846154 48.615385 55.384615 NaN NaN 52.769231 ...
2013-02-11 11:15:00 NaN 11.928571 91.923077 48.071429 52.928571 122.428571 31 NaN 51.076923 NaN NaN 10.928571 21.428571 42.076923 61.785714 41.071429 54.428571 NaN NaN 47.714286 ...
2013-02-11 11:20:00 46 17.538462 78.153846 51.076923 58.538462 126.333333 NaN NaN 52.384615 NaN NaN 13.538462 22.538462 44.307692 62.846154 38.923077 58.076923 NaN NaN 48.538462 ...
2013-02-11 11:25:00 NaN 15.642857 78.428571 51.857143 63.428571 131.428571 NaN NaN 55.214286 NaN NaN 18.428571 27.428571 46.000000 48.928571 37.307692 60.428571 NaN NaN 53.928571 ...
2013-02-11 11:30:00 NaN 12.692308 74.769231 52.692308 68.692308 130.416667 NaN NaN 57.846154 NaN NaN 23.692308 21.076923 49.692308 35.833333 36.769231 65.692308 NaN NaN 58.076923 ...
2013-02-11 11:35:00 NaN 11.153846 81.692308 56.538462 73.307692 137.769231 NaN NaN 60.153846 NaN NaN 26.384615 24.538462 52.384615 42.000000 32.538462 70.307692 NaN NaN 59.230769 ...
2013-02-11 11:40:00 NaN 13.230769 84.142857 57.571429 63.571429 141.214286 NaN NaN 57.857143 NaN NaN 33.428571 22.785714 54.000000 36.000000 35.000000 57.785714 21 NaN 59.571429 ...
2013-02-11 11:45:00 NaN 16.153846 86.923077 57.153846 58.000000 128.000000 NaN NaN 57.461538 NaN NaN 37.923077 24.615385 53.416667 35.846154 36.230769 54.166667 NaN NaN 54.666667 ...
2013-02-11 11:50:00 NaN 20.285714 83.928571 61.214286 62.571429 109.714286 NaN NaN 66.428571 24 NaN 36.571429 15.571429 53.357143 37.928571 32.571429 57.571429 NaN NaN 60.571429 ...
2013-02-11 11:55:00 NaN 22.307692 80.461538 60.615385 67.461538 103.461538 NaN NaN 69.615385 NaN NaN 20.307692 20.461538 56.615385 39.230769 34.307692 62.461538 NaN NaN 62.307692 ...
2013-02-11 12:00:00 NaN 24.000000 85.000000 58.461538 70.923077 75.384615 NaN 39 69.615385 NaN NaN 18.769231 19.615385 57.230769 39.416667 35.000000 67.000000 NaN NaN 66.692308 ...
2013-02-11 12:05:00 NaN 28.714286 85.142857 60.769231 69.642857 40.500000 6 76 63.857143 NaN NaN 18.714286 23.357143 58.142857 40.214286 39.692308 61.714286 NaN NaN 69.142857 ...
2013-02-11 12:10:00 NaN 32.538462 85.692308 59.615385 73.461538 16.692308 NaN NaN 66.307692 NaN 37 18.615385 19.230769 52.461538 38.000000 44.615385 57.750000 NaN NaN 69.846154 ...
2013-02-11 12:15:00 NaN 33.307692 90.307692 60.833333 74.769231 19.923077 NaN NaN 65.307692 NaN 36 23.076923 22.461538 48.384615 38.923077 49.384615 51.538462 NaN NaN 66.538462 ...
2013-02-11 12:20:00 NaN 39.142857 96.571429 61.692308 57.571429 12.571429 NaN NaN 63.142857 NaN NaN 30.000000 27.571429 51.285714 43.571429 54.571429 38.142857 0 NaN 63.857143 ...
2013-02-11 12:25:00 NaN 42.230769 101.461538 62.500000 62.461538 11.538462 NaN NaN 60.384615 NaN NaN 33.461538 32.461538 50.230769 46.000000 59.692308 38.692308 NaN NaN 65.769231 ...
2013-02-11 12:30:00 NaN 41.923077 106.384615 67.384615 67.333333 15.384615 NaN NaN 57.384615 NaN NaN 38.384615 37.384615 51.461538 49.153846 63.384615 44.307692 46 NaN 70.230769 ...
2013-02-11 12:35:00 NaN 38.923077 105.307692 69.384615 72.076923 20.076923 NaN NaN 61.307692 NaN NaN 38.846154 30.538462 49.000000 45.230769 63.076923 22.307692 NaN NaN 72.923077 ...
2013-02-11 12:40:00 NaN 34.142857 101.428571 72.428571 73.428571 25.428571 27 NaN 64.846154 NaN NaN 36.928571 8.285714 49.214286 40.428571 64.769231 16.500000 NaN NaN 77.076923 ...
2013-02-11 12:45:00 113 23.846154 94.769231 73.461538 56.230769 30.384615 NaN 113 64.307692 NaN NaN 41.538462 7.461538 50.307692 39.923077 56.615385 13.692308 15 NaN 78.769231 ...
2013-02-11 12:50:00 NaN 17.769231 85.230769 69.000000 57.083333 25.230769 NaN NaN 59.076923 NaN NaN 31.769231 6.076923 50.000000 42.923077 64.307692 14.307692 NaN NaN 79.250000 ...
2013-02-11 12:55:00 NaN 18.785714 90.285714 77.285714 62.285714 16.928571 NaN NaN 61.500000 NaN NaN 25.285714 11.285714 49.785714 46.142857 56.357143 14.285714 NaN 110 81.928571 ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

3000 rows × 175 columns


In [36]:
#retrim.index.
grouped = cleaned.groupby(lambda x :(x.dayofweek, x.hour, x.minute))
officename = 'Oakland'
grouped
grouped.mean()[officename].plot()
#loc, label = plt.xticks()
xlim = plt.xlim()
print(xlim)
#print(loc)
#loc = loc+50
loc = [ 118. , 252. , 360. , 480. ]
temp = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
plt.xticks(loc,['', '', '', ''])
plt.title('Averaged Non-Appointment Wait Times for ' + officename,fontsize=18)
plt.ylabel('Time (minutes)')
plt.text(43, -6, 'Monday',fontsize=12)
plt.text(160, -6, 'Tuesday',fontsize=12)
plt.text(275, -6, 'Wednesday',fontsize=12)
plt.text(390, -6, 'Thursday',fontsize=12)
plt.text(525, -6, 'Friday',fontsize=12)


(0.0, 600.0)
Out[36]:
<matplotlib.text.Text at 0x7f521f485588>

In [40]:
array_to_add = np.random.randint(0,100,short.shape[1])
print(array_to_add)
short.loc[datetime.datetime.now()] = array_to_add
for o in short.columns:
    print(o)


[70 73 77 52 32 92 78  3 70 86 44 76 30  6 84 72 24 84 31 51 54 16  4 75 38
 19  1 31 67 20 92  6 86 76 64 30 43 39 59  1  3 98 30 81 45 97 21 14 31 19
 22 77 90 65  9 87 23 20  8 59 42 61 13  6 50 23 49 45 92 10 63 11 31  6 78
 85 54 15 83  8 35 25  6 27 13 73 18 27 24 71  1 57 53 14 42 56 96 48 24 33
 36  2 68 18 61  1 95 77 45 37 24 29 48 86 75 82 34 34 87 96 92 89 30 59 22
 43 38 99 27  7 70 94  3 87 53 98 41 75 75 20 93 99 87 95 47 79  6 42 86 63
 66 99 86 56 70 43 98 19 23 74 65 85 93 98 71 29 65 63 42 69 87  8 36  7 94
  3 48 92]
Alturas
Arleta
Auburn
Bakersfield
Bakersfield-SW
Banning
Barstow
Bell Gardens
Bellflower
Bishop
Blythe
Brawley
Capitola
Carmichael
Chico
Chula Vista
Clovis
Coalinga
Colusa
Compton
Concord
Corte Madera
Costa Mesa
Crescent City
Culver City
Daly City
Davis
Delano
El Cajon
El Centro
El Cerrito
El Monte
Escondido
Escondido-CDL
Eureka
Fairfield
Fall River Mills
Folsom
Fontana
Fort Bragg
Fremont
Fresno
Fresno-North
Fullerton
Garberville
Gilroy
Glendale
Goleta
Grass Valley
Hanford
Hawthorne
Hayward
Hemet
Hollister
Hollywood
Indio
Inglewood
Jackson
King City
Laguna Hills
Lake Isabella
Lakeport
Lancaster
Lincoln Park
Lodi
Lompoc
Long Beach
Los Angeles
Los Banos
Los Gatos
Madera
Manteca
Mariposa
Merced
Modesto
Montebello
Mt. Shasta
Napa
Needles
Newhall
Norco
Novato
Oakland
Oakland-Col.
Oceanside
Oroville
Oxnard
Palm Desert
Palm Springs
Palmdale
Paradise
Pasadena
Paso Robles
Petaluma
Pittsburg
Placerville
Pleasanton
Pomona
Porterville
Poway
Quincy
Rancho Cucamonga
Rancho San Diego-CDL
Red Bluff
Redding
Redlands
Redwood City
Reedley
Ridgecrest
Riverside
Riverside East
Rocklin
Roseville
S. Lake Tahoe
Sacramento
Sacramento West-CDL
Sacramento-S.
Salinas
San Andreas
San Bernardino
San Bernardino-CDL
San Clemente
San Diego
San Diego-Clairemont
San Francisco
San Jose
San Luis Obispo
San Mateo
San Pedro
San Ysidro
Santa Ana
Santa Barbara
Santa Clara
Santa Maria
Santa Monica
Santa Paula
Santa Rosa
Santa Teresa
Seaside
Shafter
Simi Valley
Sonora
Stockton
Susanville
Taft
Temecula
Thousand Oaks
Torrance
Tracy
Truckee
Tulare
Tulelake
Turlock
Twentynine Palms
Ukiah
Vacaville
Vallejo
Van Nuys
Ventura
Victorville
Visalia
Walnut Creek
Watsonville
Weaverville
West Covina
West Hollywood
West Sacramento-CDL
Westminster
Whittier
Willows
Winnetka
Woodland
Yreka
Yuba City
Unnamed: 175
2015-03-25 15:04:10.902986
2015-03-25 15:04:15.210953
2015-03-25 15:04:31.512583