In [1]:
import pandas as pd
import numpy as np
import os
import csv
In [2]:
datestring = [201501, 201502, 201503, 201504, 201505, 201506, 201507, 201508, 201509, 201510, 201511, 201512]
i = 0
dfs = []
for elem in datestring:
name = 'citi' + str(datestring[i])
name = pd.read_csv("../data/external/ridership/"+ str(datestring[i]) + "-citibike-tripdata.csv")
name = pd.DataFrame(name['starttime'].groupby(name['start station id']).count())
tripcount = 'count of rides ' + str(datestring[i])
name = name.rename(columns={'starttime': tripcount})
dfs.append(name)
i+=1
In [3]:
total = dfs[0].join((dfs[1], dfs[2], dfs[3], dfs[4], dfs[5], dfs[6], dfs[7], dfs[8], dfs[9], dfs[10], dfs[11]), how='outer')
total = total.reset_index()
total = total.rename(columns={'start station id': 'Station_id'})
total['average station ridership 2015'] = total.mean(axis=1)
In [4]:
total
Out[4]:
Station_id
count of rides 201501
count of rides 201502
count of rides 201503
count of rides 201504
count of rides 201505
count of rides 201506
count of rides 201507
count of rides 201508
count of rides 201509
count of rides 201510
count of rides 201511
count of rides 201512
average station ridership 2015
0
72
638.0
480.0
1026.0
1948.0
2943.0
2767.0
3149.0
3504.0
3667.0
3546.0
2323.0
1648.0
2131.615385
1
79
566.0
335.0
725.0
1728.0
2368.0
2424.0
2626.0
2726.0
3011.0
2646.0
2074.0
1579.0
1760.538462
2
82
310.0
276.0
406.0
788.0
1068.0
946.0
1193.0
1145.0
1166.0
1053.0
819.0
713.0
766.538462
3
83
258.0
162.0
281.0
749.0
1101.0
994.0
1659.0
1724.0
1505.0
1104.0
886.0
717.0
863.307692
4
116
1696.0
1193.0
2105.0
1933.0
2281.0
4800.0
5674.0
6175.0
6558.0
5825.0
4455.0
3686.0
3576.692308
5
119
118.0
68.0
84.0
130.0
158.0
107.0
177.0
249.0
225.0
197.0
195.0
150.0
152.076923
6
120
107.0
73.0
171.0
355.0
478.0
507.0
581.0
621.0
582.0
533.0
486.0
414.0
386.769231
7
127
1359.0
910.0
1584.0
3657.0
7534.0
7306.0
6933.0
6790.0
7183.0
6491.0
5030.0
3942.0
4526.615385
8
128
1433.0
973.0
1695.0
3573.0
6127.0
5830.0
6192.0
6606.0
5116.0
NaN
2806.0
3117.0
3633.000000
9
137
626.0
448.0
829.0
1425.0
2062.0
1828.0
2219.0
2800.0
2746.0
2799.0
1931.0
1699.0
1657.615385
10
143
299.0
170.0
314.0
778.0
1198.0
1021.0
1224.0
1245.0
1302.0
1009.0
824.0
732.0
789.153846
11
144
82.0
55.0
163.0
373.0
512.0
445.0
547.0
802.0
744.0
574.0
347.0
314.0
392.461538
12
146
619.0
447.0
769.0
1615.0
2266.0
2116.0
2743.0
2838.0
2993.0
2559.0
1992.0
1654.0
1750.538462
13
147
1427.0
908.0
1561.0
3583.0
4777.0
5008.0
5455.0
5538.0
5755.0
4819.0
3879.0
3054.0
3531.615385
14
150
762.0
491.0
891.0
1485.0
1903.0
1906.0
2480.0
2511.0
2271.0
2031.0
1747.0
1524.0
1550.153846
15
151
1549.0
1192.0
2279.0
5188.0
7507.0
7029.0
8087.0
9509.0
9120.0
7725.0
6172.0
5017.0
5425.000000
16
152
537.0
306.0
654.0
1317.0
2112.0
2161.0
2361.0
2382.0
2375.0
2002.0
1620.0
1315.0
1484.153846
17
153
1644.0
1080.0
2073.0
3101.0
4343.0
4669.0
4762.0
4752.0
1298.0
NaN
NaN
NaN
2787.500000
18
157
419.0
247.0
415.0
917.0
1377.0
1202.0
1402.0
1375.0
1469.0
1282.0
1090.0
976.0
948.307692
19
160
795.0
550.0
885.0
1237.0
1947.0
1968.0
2117.0
3051.0
2395.0
2179.0
1828.0
1499.0
1585.461538
20
161
1108.0
866.0
1402.0
2864.0
4521.0
3815.0
4174.0
4542.0
5372.0
5842.0
4501.0
3363.0
3271.615385
21
164
833.0
562.0
1012.0
1487.0
1984.0
2309.0
2556.0
2640.0
3115.0
3056.0
2258.0
1873.0
1834.538462
22
167
1384.0
950.0
1575.0
2683.0
3518.0
3675.0
4212.0
1686.0
4129.0
4104.0
3378.0
2622.0
2621.769231
23
168
1802.0
1332.0
2172.0
2731.0
1763.0
5721.0
6468.0
6879.0
7259.0
6606.0
5360.0
4719.0
4075.384615
24
173
1366.0
891.0
1505.0
2618.0
3829.0
2695.0
4846.0
4583.0
5061.0
3442.0
4129.0
3251.0
2953.000000
25
174
1067.0
798.0
1367.0
2164.0
2657.0
2636.0
3114.0
2861.0
3559.0
3392.0
2959.0
2423.0
2243.923077
26
195
848.0
533.0
1117.0
2119.0
3364.0
3245.0
3608.0
3662.0
1929.0
2804.0
2294.0
2047.0
2135.769231
27
212
1067.0
794.0
1296.0
1189.0
NaN
2.0
3644.0
4333.0
4481.0
3863.0
3013.0
2628.0
2210.166667
28
216
114.0
67.0
137.0
459.0
865.0
559.0
791.0
1021.0
859.0
626.0
468.0
290.0
497.846154
29
217
153.0
55.0
272.0
1270.0
3102.0
2075.0
2572.0
3114.0
2869.0
1721.0
1284.0
925.0
1509.923077
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
458
3169
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1641.0
2283.0
1630.0
1098.0
1964.200000
459
3170
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2983.0
2923.0
2101.0
1241.0
2483.600000
460
3171
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1006.0
1510.0
1199.0
1721.500000
461
3172
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2093.0
1740.0
1274.0
889.0
1833.600000
462
3173
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1581.0
1666.0
1128.0
1887.000000
463
3175
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2513.0
2946.0
2190.0
1604.0
2485.600000
464
3176
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2030.0
1917.0
1405.0
1100.0
1925.600000
465
3177
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2083.0
3433.0
2790.0
1876.0
2671.800000
466
3178
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1863.0
1714.0
1002.0
701.0
1691.600000
467
3179
NaN
NaN
NaN
NaN
NaN
NaN
NaN
43.0
149.0
152.0
92.0
83.0
616.333333
468
3180
NaN
NaN
NaN
NaN
NaN
NaN
51.0
1240.0
918.0
517.0
316.0
285.0
929.571429
469
3181
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1214.0
1166.0
NaN
NaN
NaN
1853.666667
470
3182
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1040.0
1118.0
NaN
NaN
NaN
1780.000000
471
3221
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
138.0
187.0
167.0
139.0
770.400000
472
3222
NaN
NaN
NaN
NaN
NaN
NaN
NaN
192.0
1785.0
1839.0
1544.0
1395.0
1662.833333
473
3223
NaN
NaN
NaN
NaN
NaN
NaN
NaN
266.0
2219.0
2432.0
1965.0
1798.0
1983.833333
474
3224
NaN
NaN
NaN
NaN
NaN
NaN
NaN
69.0
4020.0
3594.0
2829.0
2222.0
2659.666667
475
3226
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
79.0
1691.0
1164.0
847.0
1401.400000
476
3229
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
222.0
150.0
150.0
937.750000
477
3230
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
128.0
6768.0
5634.0
3937.0
3939.400000
478
3231
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
839.0
2517.0
1857.0
1211.0
1931.000000
479
3232
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
8.0
367.0
355.0
292.0
850.800000
480
3233
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1882.0
3038.0
2814.0
2741.750000
481
3234
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1275.0
2903.0
2682.0
2523.500000
482
3235
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2587.0
1865.0
1354.0
2260.250000
483
3236
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2340.0
2097.0
2557.666667
484
3237
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
10.0
125.0
122.0
873.500000
485
3238
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
473.0
1855.500000
486
3241
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
13.0
1627.000000
487
3242
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
15.0
1628.500000
488 rows × 14 columns
In [5]:
total.loc[total['average station ridership 2015'].idxmax()]
Out[5]:
Station_id 519.000000
count of rides 201501 2354.000000
count of rides 201502 1549.000000
count of rides 201503 3186.000000
count of rides 201504 5801.000000
count of rides 201505 10388.000000
count of rides 201506 11052.000000
count of rides 201507 12359.000000
count of rides 201508 12611.000000
count of rides 201509 14063.000000
count of rides 201510 11340.000000
count of rides 201511 11267.000000
count of rides 201512 8843.000000
average station ridership 2015 8102.461538
Name: 294, dtype: float64
In [6]:
total.describe()
/Users/Danny1/anaconda/lib/python3.5/site-packages/numpy/lib/function_base.py:3834: RuntimeWarning: Invalid value encountered in percentile
RuntimeWarning)
Out[6]:
Station_id
count of rides 201501
count of rides 201502
count of rides 201503
count of rides 201504
count of rides 201505
count of rides 201506
count of rides 201507
count of rides 201508
count of rides 201509
count of rides 201510
count of rides 201511
count of rides 201512
average station ridership 2015
count
488.000000
330.000000
328.000000
328.000000
327.000000
327.000000
326.000000
330.000000
419.000000
453.000000
463.000000
467.000000
471.000000
488.000000
mean
1297.534836
865.309091
600.396341
1042.152439
1995.076453
2941.853211
2887.174847
3289.927273
2813.947494
2847.017660
2618.308855
2114.014989
1707.271762
1967.072675
std
1287.346458
613.234621
436.350743
743.447948
1299.150722
2027.399137
1984.712722
2226.414911
2476.813554
2315.158013
2056.005724
1669.737333
1366.441352
1298.962491
min
72.000000
42.000000
21.000000
3.000000
6.000000
6.000000
2.000000
35.000000
3.000000
8.000000
3.000000
20.000000
1.000000
67.500000
25%
333.500000
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
896.269231
50%
467.500000
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1705.076923
75%
3073.250000
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2727.407692
max
3242.000000
4157.000000
2238.000000
5916.000000
6945.000000
12988.000000
13347.000000
14493.000000
14498.000000
14923.000000
11340.000000
11267.000000
8843.000000
8102.461538
In [7]:
# Save to CSV
total.to_csv('../data/processed/ridership.csv')
In [ ]:
Content source: pichot/citibike-publicspace
Similar notebooks: