1. 项目概述
这个共享单车数据分析项目源于我在完成毕业设计时的实际需求。当时我发现,虽然共享单车已经深入城市生活的方方面面,但关于其使用规律的量化研究却相对匮乏。于是,我决定利用2017年5月北京地区的共享单车订单数据,通过Python数据分析技术,揭示用户使用行为的时空特征。
这个项目特别适合以下几类读者:
- 正在寻找数据分析项目灵感的学生
- 希望了解共享单车运营规律的从业者
- 对城市交通数据分析感兴趣的开发者
- 需要完成类似毕业设计的同学
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据准备与预处理
2.1 数据来源与结构
原始数据来自2017年5月10日至24日北京地区的共享单车订单记录,包含以下关键字段:
- 用户ID(userid)
- 订单ID(orderid)
- 开始时间(starttime)
- 结束时间(endtime)
- 起始位置(geohashed_start_loc)
- 结束位置(geohashed_end_loc)
数据量较大,完整记录超过100万条。为便于分析,我首先对数据进行抽样处理,提取了连续7天(5月10-16日)数据的1%作为分析样本。
2.2 数据清洗与转换
数据预处理是分析的关键环节,我主要进行了以下处理:
python复制import pandas as pd
import geohash as gh
from geopy import distance
# 读取数据
df = pd.read_csv("train.csv", encoding="gbk")
# 时间处理
df['startdate'] = df['starttime'].str.split(' ').str[0]
df['hour'] = df['starttime'].str.split(' ').str[1].str[:2]
# 地理编码转换
def decode_geohash(geohash):
try:
return gh.decode(geohash)
except:
return (None, None)
df['start_latlon'] = df['geohashed_start_loc'].apply(decode_geohash)
d
