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 [ ]: