美国共享单车使用情况的案例分析

1.准备工作

1.1首先,需要导入相关的包

 import numpy as np

 import pandas as pd

%matplotlib inline 


1.2使用python的pandas库导入所要分析的文件,在导入时可能出现红色的警告,这是因为数据类型不是很统一(mixed types)
data=pd.read_csv('/Users/clark/Downloads/Python数据分析入门与实战-数据集/bike.csv')

然后查看数据,可以得到以下的表格。

2.开始分析,处理数据

#由于在分析时,隔天的数据不好分析,所以我们选取在当天结束骑行的。

data=data[data['StartDay']==data['EndDay']]

#由于变量太多不利于分析,分析出来效果不好,我们在这里只选取成员类型,骑行时间,开始日期,开始时间,开始地点,及结束地点。

data=data[['MemberType','TripDurationSec','StartDay','StartTime','StartDate','StartStationName','EndStationName']]

由于,在表格中出现很多的空值,所以我们要处理空值。

#处理空值

data=data.dropna(how='all')

#对月份进行提取

data['StartDate']=data.StartDate.map(lambda x:x.split('/')[0])

#使用数据透视表,改变表格的形状,选取自己所需要的那几个变量重新组成一个表格

#接下来分析一周当中各个类型成员的累计平均骑行时间的情况

table=data.pivot_table(values='TripDurationSec',index='StartDay',columns='MemberType',aggfunc=np.mean)

查看使用数据透视表组成的表格。

#由于表格并不是很直观可以看出来他们之间的区别,我们这时候将其转换成柱状图,并让其堆积一起,方便对比

#可以看出周日的时候消费者的骑行时间是最长的。

table.plot.bar(stacked=True)


为了更加直观的看出不同客户的骑行时间的多少,所以,我们将其时间除于总的时间,可以算出不同类型客户所占比例的不同

table_norm=table.div(table.sum(1),axis=0)


#接下来,我们进一步分析在一天24小时中不同类型客户累计骑行时间,可以看出晚上8点骑行时间最长,其次是凌晨4点

data.pivot_table(values='TripDurationSec',index='StartTime',columns='MemberType',aggfunc=np.mean).plot.barh(figsize=(10,12))


#之后,我们在分析一下车辆的使用情况,我们运用车辆在开始地点的总数减去车辆在目的地的总数,就可以得出不同地方车辆的供应是否充足

#比如200 River这个车站,它出发的车远少于到达的车,说明这个车站可以相应减少一些共享单车的供应

#100 Walnut St这个车站,它出发的车远大于到达的车,说明这个车站需要相应增加一些共享单车的供应

Num=data.StartStationName.value_counts()-data.EndStationName.value_counts()

Num.sort_values()


#我们还可以使用层次化索引来分析,在每周当中,每个车站的不同客户的 累计骑行情况

table=data.pivot_table('TripDurationSec',index='StartStationName',columns=['MemberType','StartDay'],aggfunc=np.size,margins=True,fill_value=0)


#customer用户在一周当中从不同车站出发的累计骑行情况

table['Customer']


你可能感兴趣的:(美国共享单车使用情况的案例分析)