赛题任务
:识别出工作日早高峰07:00-09:00潮汐现象最突出的40个区域,针对Top40区域计算结果进一步设计高峰期共享单车潮汐点优化方案;
赛题数据
:共享单车轨迹数据、共享单车停车点位(电子围栏)数据 和 共享单车订单数据;
赛题任务
:针对工作日早高峰乌石浦地铁口附近停车和用车问题,自由进行数据分析和算法模型构建,以共享单车资源合理分配为目标,设计共享单车调度方案;
赛题数据
:共享单车轨迹数据、共享单车停车点位(电子围栏)数据、共享单车订单数据、轨道站点进站客流数据、轨道站点出站客流数据 和 轨道站点闸机设备编码数据;
赛题任务
:对密集骑行路段的道路使用情况进行分析研判,主动发现影响城市骑行友好度的因素;
赛题数据
:共享单车轨迹数据、共享单车停车点位(电子围栏)数据、共享单车订单数据、轨道站点进站客流数据、轨道站点出站客流数据 和 轨道站点闸机设备编码数据;
假设我们将比赛数据存在../data/
目录下,并引入常见的库:
import os, codecs
import pandas as pd
import numpy as np
PATH = '../input/'
共享单车轨迹数据为共享单车在使用时候产生的位置定位数据,具体包含单车在不同时间段(默认是15秒记录一次)下的经纬度信息。
读取数据
:读取单车轨迹数据:# 共享单车轨迹数据
bike_track = pd.concat([
pd.read_csv(PATH + 'gxdc_gj20201221.csv'),
pd.read_csv(PATH + 'gxdc_gj20201222.csv'),
pd.read_csv(PATH + 'gxdc_gj20201223.csv'),
pd.read_csv(PATH + 'gxdc_gj20201224.csv'),
pd.read_csv(PATH + 'gxdc_gj20201225.csv')
])
# 按照单车ID和时间进行排序
bike_track = bike_track.sort_values(['BICYCLE_ID', 'LOCATING_TIME'])
统计数据
列名称 | 取值个数 | 最大值 | 最小值 |
---|---|---|---|
BICYCLE_ID | 33345 | ||
LOCATING_TIME | 71957 | 2020/12/25 9:59:59 | 2020/12/21 6:00:00 |
LATITUDE | 1536749 | 24.520172114 | 24.482147226 |
LONGITUDE | 358613 | 118.140532887 | 118.102571145 |
路线可视化
import folium
m = folium.Map(location=[24.482426, 118.157606], zoom_start=12)
my_PolyLine=folium.PolyLine(locations=bike_track[bike_track['BICYCLE_ID'] == '000152773681a23a7f2d9af8e8902703'][['LATITUDE', 'LONGITUDE']].values,weight=5)
m.add_children(my_PolyLine)
共享单车停车点位(电子围栏)数据为规范共享单车停车秩序,统一划定的共享单车停放区域。
读取数据
def bike_fence_format(s):
s = s.replace('[', '').replace(']', '').split(',')
s = np.array(s).astype(float).reshape(5, -1)
return s
# 共享单车停车点位(电子围栏)数据
bike_fence = pd.read_csv(PATH + 'gxdc_tcd.csv')
bike_fence['FENCE_LOC'] = bike_fence['FENCE_LOC'].apply(bike_fence_format)
围栏可视化
import folium
m = folium.Map(location=[24.482426, 118.157606], zoom_start=12)
for data in bike_fence['FENCE_LOC'].values[:100]:
folium.Marker(
data[0, ::-1]
).add_to(m)
m
共享单车订单数据为共享单车使用时开锁和关锁信息的数据。
读取数据
# 共享单车订单数据
bike_order = pd.read_csv(PATH + 'gxdc_dd.csv')
bike_order = bike_order.sort_values(['BICYCLE_ID', 'UPDATE_TIME'])
单车位置可视化
import folium
m = folium.Map(location=[24.482426, 118.157606], zoom_start=12)
my_PolyLine=folium.PolyLine(locations=bike_order[bike_order['BICYCLE_ID'] == '0000ff105fd5f9099b866bccd157dc50'][['LATITUDE', 'LONGITUDE']].values,weight=5)
m.add_children(my_PolyLine)
数据读取
# 轨道站点进站客流数据
rail_inflow = pd.read_excel(PATH + 'gdzdtjsj_jzkl.csv')
rail_inflow = rail_inflow.drop(0)
# 轨道站点出站客流数据
rail_outflow = pd.read_excel(PATH + 'gdzdtjsj_czkl.csv')
rail_outflow = rail_outflow.drop(0)
# 轨道站点闸机设备编码数据
rail_device = pd.read_excel(PATH + 'gdzdkltj_zjbh.csv')
rail_device.columns = [
'LINE_NO', 'STATION_NO', 'STATION_NAME',
'A_IN_MANCHINE', 'A_OUT_MANCHINE',
'B_IN_MANCHINE', 'B_OUT_MANCHINE'
]
rail_device = rail_device.drop(0)
© 2019-2023 coggle.club 版权所有 京ICP备20022947 京公网安备 11030102010643号