import pandas as pan
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
colors_1 = sns.color_palette()
colors_2 =sns.color_palette("Set2")
colors_3 = sns.color_palette("Set3")
Bicycle_data = pan.read_csv('https://raw.githubusercontent.com/Rusty1299/HW_files/main/Fremont_Bridge_Bicycle_Counter.csv')
Copy_of_data =Bicycle_data.copy()
Bicycle_data['Date']= pan.to_datetime(Bicycle_data['Date'],format='%m/%d/%Y %I:%M:%S %p')
Bicycle_dtypes = Bicycle_data.dtypes
print(Bicycle_dtypes)
# Re-orginize the data... I didn't like the arrangement
cols = ['Date','Fremont Bridge East Sidewalk', 'Fremont Bridge West Sidewalk', 'Fremont Bridge Total']
Bicycle_data = Bicycle_data[cols].sort_values(by='Date')
Bicycle_data_DD = Bicycle_data.drop_duplicates().reset_index(drop=True)
Bicycle_data_DD= Bicycle_data_DD.dropna()
Bicycle_Time_Index = Bicycle_data_DD.set_index('Date')
Bicycle_Time_Index_W_S = Bicycle_Time_Index.drop('Fremont Bridge Total', axis = 1)
# Question 1
Bicycle_data = Bicycle_Time_Index[Bicycle_Time_Index.index.year < 2020]
a1 ,Cool_subplots = plt.subplots(2,1,figsize=(24, 13.5),dpi =80)
Column_names = ['Fremont Bridge West Sidewalk','Fremont Bridge East Sidewalk']
Cool_subplots[0].plot(Bicycle_data.index,Bicycle_data.loc[:,'Fremont Bridge West Sidewalk'])
Cool_subplots[1].plot(Bicycle_data.index,Bicycle_data.loc[:,'Fremont Bridge East Sidewalk'],color='g')
a1.legend(Column_names,bbox_to_anchor=(1.15, .85), loc="upper right")
a1.savefig('Question1_image.png',bbox_inches = "tight")
#Question 2
Weekly_Bikes_Sum = Bicycle_Time_Index_W_S.resample('w').sum()
With_Total_Data = Bicycle_data.resample('w').sum()
plt.figure(figsize=(24, 13.5),dpi =80)
plt.rcParams.update({'font.size': 22})
plt.stackplot(Weekly_Bikes_Sum.index,Weekly_Bikes_Sum.T,labels=Weekly_Bikes_Sum.columns)
plt.title('Number of Bikes per Week')
plt.xlabel("Date")
plt.ylabel('Number of Bikes')
plt.legend(bbox_to_anchor=(1, 1), loc="upper left",title='Fremont Bridge Bikers')
fig1 = plt.gcf()
fig1.savefig('Question2_image.png',bbox_inches = "tight")
plt.show()
# Question 3
Bicycle_resample_day = Bicycle_Time_Index.resample('D').sum()
Bicycle_Rolling_sum = Bicycle_resample_day.rolling(30).sum()
plt.figure(figsize=(24, 13.5),dpi =80)
plt.plot(Bicycle_Rolling_sum.index,Bicycle_Rolling_sum,label = Bicycle_Rolling_sum.columns)
plt.legend(bbox_to_anchor=(1, 1), loc="upper left",title= '50 Day Rolling Sums')
plt.title('50 Day Rolling sum of the Total Number of Bikers')
plt.xlabel("Date")
plt.ylabel('Number of Bikes')
fig2 = plt.gcf()
fig2.savefig('Question3_image.png',bbox_inches = "tight")
plt.show()
# Question 4
sorter = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
Converting_Indexs_to_Day = Bicycle_Time_Index_W_S.set_index(Bicycle_Time_Index_W_S.index.day_name())
# Converting_Indexs_to_Day= Converting_Indexs_to_Day.sort_index(level = sorter,axis = 1)
plt.figure(figsize=(24, 13.5),dpi =80)
x_names = Converting_Indexs_to_Day.index
Y_values = Converting_Indexs_to_Day.sum(axis=1)
## Total Number of bikers
sns.boxplot(x =x_names,y=Y_values,showfliers=False,order=sorter,palette=colors_1)
plt.title('Total Number of Bikers')
plt.xlabel("Days of the Week")
plt.ylabel('Number of Bikes')
plt.savefig('Question4_t_image.png',bbox_inches = "tight")
plt.show()
Total_groupby = Y_values.groupby([x_names]).describe()
Total_groupby = Total_groupby.reindex(sorter)
## West Side graph
West_side_values = Converting_Indexs_to_Day['Fremont Bridge West Sidewalk']
plt.figure(figsize=(24, 13.5),dpi =80)
sns.boxplot(x =x_names,y=West_side_values,showfliers=False,order=sorter,palette=colors_2)
plt.title('Number of Bikers on the Fremont Bridge West Sidewalk')
plt.xlabel("Days of the Week")
plt.ylabel('Number of Bikes')
plt.savefig('Question4_5_image.png',bbox_inches = "tight")
plt.show()
West_groupby = West_side_values.groupby([x_names]).describe()
West_groupby = West_groupby.reindex(sorter)
## East Side graph
East_side_values = Converting_Indexs_to_Day['Fremont Bridge East Sidewalk']
plt.figure(figsize=(24, 13.5),dpi =80)
sns.boxplot(x =x_names,y=East_side_values,showfliers=False,order=sorter,palette=colors_3)
plt.title('Number of Bikers on the Fremont Bridge East Sidewalk')
plt.xlabel("Days of the Week")
plt.ylabel('Number of Bikes')
plt.show()
East_groupby = East_side_values.groupby([East_side_values.index]).describe()
East_groupby = East_groupby.reindex(sorter)
print('\n Total Group by\n',Total_groupby)
print('\n West Group by\n',West_groupby)
print('\n East Group by\n',East_groupby)
# Question 5
Converting_to_day =Bicycle_data_DD.copy()
Converting_to_day['Date'] = Bicycle_data_DD.Date.dt.weekday
Converting_to_day['Date'] = Converting_to_day['Date'].where((Converting_to_day['Date']>=5)&(Converting_to_day['Date']<=6),'Weekday')
Converting_to_day['Date'] =Converting_to_day['Date'].where(Converting_to_day['Date']=='Weekday','Weekend')
# Total bikes on both sidewalks
plt.figure(figsize=(24, 13.5),dpi =80)
sns.boxplot(x =Converting_to_day['Date'],y=Converting_to_day['Fremont Bridge Total'],showfliers=False,palette=colors_1)
plt.title('Total Number of Bikes on Fremont Bridge')
plt.ylabel('Number of Bikes')
plt.savefig('Question5_T_image.png',bbox_inches = "tight")
plt.show()
# East Sidewalk
plt.figure(figsize=(24, 13.5),dpi =80)
sns.boxplot(x =Converting_to_day['Date'],y=Converting_to_day['Fremont Bridge East Sidewalk'],showfliers=False,palette=colors_2)
plt.title('Total Number of Bikes on the Fremont Bridge East Sidewalk')
plt.ylabel('Number of Bikes')
plt.savefig('Question5_E_image.png',bbox_inches = "tight")
plt.show()
# west Sidewalk
plt.figure(figsize=(24, 13.5),dpi =80)
sns.boxplot(x =Converting_to_day['Date'],y=Converting_to_day['Fremont Bridge West Sidewalk'],showfliers=False,palette=colors_3)
plt.title('Total Number of Bikes on the Fremont Bridge West Sidewalk')
plt.ylabel('Number of Bikes')
plt.savefig('Question5_w_image.png',bbox_inches = "tight")
plt.show()
Mean_pivot_table = Converting_to_day.pivot_table(index = 'Date')
## Question 5