mobike单车用户分群
mobike单车创建了全球首个智能共享单车模式,自主研发的专利智能锁集成了 GPS 和通讯模块,使用了新一代物联网技术,通过智能手机 app 让用户随时随地可以定位并使用最近的摩拜单车,骑行到达目的地后,就近停放在路边合适的区域,关锁即实现电子付费结算。摩拜在所到的城市中掀起骑行的热潮,推动「让自行车回归城市」,为更多人的出行带来方便,也给城市倡导绿色出行提供了可持续发展的智能解决方案。mobike单车的愿望和使命是用人人可负担得起的价格提供智能共享单车服务,使人们更便利地完成城市内的短途出行,并帮助减少交通拥堵,减少环境污染,让我们生活的城市更美好。
要分析的问题:基于mobike单车的用户数据,使用python的聚类分析模型,对于mobike单车的用户进行用户分群。
数据表的主要字段:
user_id:用户id
start_time:开始时间
end_time:结束时间
timeduration:骑行时长
bikeid:自行车编码
tripduration:骑行距离
from_station_id:开始站编码
from_station_name:开始站名字
to_station_id:结束站编码
to_station_name:结束站名字
usertype:用户种类
gender:性别
birthyear:出生年份
age:年龄
导入python要用的基本库和数据表
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
get_ipython().run_line_magic('matplotlib', 'inline')
df=pd.read_csv(r'mobike.csv')
df.info()
#gender和birthyear存在缺失值,所占比例较小,可以直接删除
df=df.dropna(how='any')
df.info()
#把age,timeduration骑行时长从 object转换成数字类型
df.age=pd.to_numeric(df.age)
#tripduration中存在"1,090"的值,无法转换。需要先用空值把“,”替换然后再进行类型转换
df.tripduration=pd.to_numeric(df.tripduration.apply(lambda x: x.replace(",","")))
#start_time和end_time转换成时间类型
df['start_time']=pd.to_datetime<