In [3]:
import pandas as pd
import numpy as np
In [4]:
import matplotlib
# display graphs inline
%matplotlib inline
# Make graphs prettier
pd.set_option('display.max_columns', 15)
pd.set_option('display.line_width', 400)
pd.set_option('display.mpl_style', 'default')
# Make the fonts bigger
matplotlib.rc('figure', figsize=(14, 7))
matplotlib.rc('font', family='normal', weight='bold', size=22)
In [56]:
bike_data_2012 = pd.read_csv("./2012.csv", encoding='latin1', sep=',', index_col='Date', parse_dates=True, dayfirst=True)
bike_data_2012 = bike_data_2012[['Berri 1', 'Maisonneuve 1', 'Rachel1']]
bike_data_2012.index = bike_data_2012['Rachel1'].index.map(lambda x: x + datetime.timedelta(366))
bike_data_2013 = pd.read_csv("./2013.csv", encoding='latin1', sep=',', index_col='Date', parse_dates=True, dayfirst=True)
bike_data_2013 = bike_data_2013[['Berri1', u'CSC', 'Mais1', 'Rachel1']]
In [63]:
rachel = pd.DataFrame(index=bike_data_2012.index)
rachel['2012'] = bike_data_2012['Rachel1']
rachel['2013'] = bike_data_2013['Rachel1']
In [68]:
rachel = pd.DataFrame({'2012': bike_data_2012['Rachel1'], '2013': bike_data_2013['Rachel1']})
In [69]:
rachel.plot()
Out[69]:
In [72]:
bike_data['weekday'] = bike_data.index.weekday
bike_data.head()
Out[72]:
In [73]:
counts_by_day = bike_data.groupby('weekday').aggregate(np.sum)
counts_by_day
Out[73]:
In [74]:
counts_by_day.index = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
counts_by_day['Berri 1'].plot(kind='bar')
Out[74]:
In [19]:
bike_data['Berri 1'].plot()
Out[19]:
In [81]:
weather_data = pd.read_csv('weather_2012.csv', parse_dates=True, index_col='Date/Time')
In [85]:
bike_data['mean temp'] = weather_data['Temp (C)'].resample('D', how='mean')
In [86]:
bike_data.head()
Out[86]:
In [91]:
weather_data[:5]
Out[91]:
In [88]:
bike_data[['Berri 1', 'mean temp']].plot(subplots=True)
Out[88]:
In [89]:
bike_data['Rain'] = weather_data['Weather'].str.contains('Rain').resample('D', how='mean')
In [90]:
bike_data[['Berri 1', 'Rain']].plot(subplots=True)
Out[90]: