个人学习记录。
c题题干:
····自 年以来,共享汽车行业曾经“百花齐放”,多个项目获得巨额融资。
但因为模式过重、运营成本过高、无法盈利等问题,陆续有共享汽车公司因为
资金链断裂而倒闭。据易观发布的《 中国共享汽车平台创新白皮书》显
示, 年的共享汽车行业,是中小参与者不断出局,头部平台拉动行业重启
增长的一年。而共享汽车增速在 年 5–10 月达到 2.21%,超过网约车和
线上租车。
····在以前,汽车被当作“大件”购买。而现在,由于车型更新迭代之快让人眼
花缭乱,加之受疫情影响,消费者的决策过程会变得更长。消费者有用车的欲
望、有消费升级的欲望,但他们越来越聪明了,他们想知道,有没有更轻更好
的用车方式。共享汽车的“分时租赁”模式很多的解决了这个问题。但是这种
方式的成本控制环节过多,导致盈利非常困难。
····第一阶段问题: 附件是共享汽车的位置数据集,数据集中提供了时间,经纬
度等位置信息,以及停车点上停放的车辆的数量和车辆列表。请建立数学模
型分析该城市的共享汽车使用分布情况,并且制定一个对企业最有利的共享
汽车调度方案。
import pandas as pddata = pd.read_csv('共享汽车定位数据.csv', encoding='gb18030') # 读取csv数据data.shape data.head()len(data['timestamp'].unique()) # 去重# 输出“18988”data['time']=data['timestamp'].apply(lambda x:x[:7]) # 截取时间戳前七位data.head()len(data['time'].unique())data['time'].unique()import matplotlib.pyplot as plt%matplotlib inlineplt.scatter(data[(data['time']=='-01')&(data['total_cars']!=0)]['latitude'],data[(data['time']=='-01')&(data['total_cars']!=0)]['longitude'])
图一:前七位截取到月(-01)
data['time']=data['timestamp'].apply(lambda x:x[:10]) # 截取时间戳前十位data.head()len(data['time'].unique())data['time'].unique()import matplotlib.pyplot as plt%matplotlib inlineplt.scatter(data[(data['time']=='-01-10')&(data['total_cars']!=0)]['latitude'],data[(data['time']=='-01-10')&(data['total_cars']!=0)]['longitude'])
图二: 前十位截取到日时的数据量分布(-01-10)
data['time']=data['timestamp'].apply(lambda x:x[:13]) # 截取时间戳前十三位data.head()len(data['time'].unique())data['time'].unique()import matplotlib.pyplot as plt%matplotlib inlineplt.scatter(data[(data['time']=='-01-10 09')&(data['total_cars']!=0)]['latitude'],data[(data['time']=='-01-10 09')&(data['total_cars']!=0)]['longitude'])
图三: 前十三位截取到小时(-01-10 09)
data['time']=data['timestamp'].apply(lambda x:x[:13]) # 截取时间戳前十六位data.head()len(data['time'].unique())data['time'].unique()import matplotlib.pyplot as plt%matplotlib inlineplt.scatter(data[(data['time']=='-01-05 16:17')&(data['total_cars']!=0)]['latitude'],data[(data['time']=='-01-05 16:17')&(data['total_cars']!=0)]['longitude'])
图四: 前十六位截取到分钟(-01-05 16:17)
data.columns
输出:Index([‘timestamp’, ‘latitude’, ‘longitude’, ‘total_cars’, ‘carsList’, ‘time’], dtype=‘object’)
data['GPS']=data.apply(lambda x:str(x['latitude'])+str(x['longitude']),axis=1) # 将经度和纬度拼接位'GPS'字段len(data['GPS'].unique()) #总停车地点
输出 :27604(总停车点,聚点位260个类)
allcars=[]def getlist(x):for i in eval(x):allcars.append(i)data['carsList'].apply(lambda x: getlist(x))
输出:
0None1None2None3None4None... 1048570 None1048571 None1048572 None1048573 None1048574 NoneName: carsList, Length: 1048575, dtype: object
len(allcars)# 输出总车辆(去重前)678520len(set(allcars))# 去重后输出260