【数据分析实例】1,337,000 条深圳通刷卡记录数据分析

1. 数据集说明

这是一份来自深圳市政府数据开放平台的深圳通刷卡数据,时间区间为 2018-08-31 到 2018-09-01,总计 1,337,000 条记录,大小为 335 M,包含 11 个字段。

深圳通是由深圳市运输局监制、深圳市公共交通结算管理中心发行的一款即可优惠乘坐深圳市公交车,深圳地铁和商店消费的一种储值卡。

2. 数据处理

2.1 数据处理

源数据存的是 json 格式的数据,先使用 python 对数据做一下清洗,然后保存为 csv 数据文件。

### 解析 json 数据文件
path = r"C:\Users\Administrator\Desktop\2018record3.jsons"
data = []
with open(path, 'r', encoding='utf-8') as f:
    for line in f.readlines():
        data += json.loads(line)['data']
data = pd.DataFrame(data)
columns = ['card_no', 'deal_date', 'deal_type', 'deal_money', 'deal_value', 'equ_no', 'company_name', 'station', 'car_no', 'conn_mark', 'close_date']
data = data[columns]  # 调整字段顺序
data.info()

### 输出处理 
# 全部都是 交通运输 的刷卡数据
print(data['company_name'].unique())

# 删除重复值
# print(data[data.duplicated()])
data.drop_duplicates(inplace=True)
data.reset_index(drop=True, inplace=True)

# 缺失值
# 只有线路站点和车牌号两个字段存在为空,不做处理
# print(data.isnull().sum())

# 去掉脏数据
data = data[data['deal_date'] > '2018-08-31']

### 数据保存 
print(data.info)

# 数据保存为 csv
data.to_csv('SZTcard.csv', index=False, header=None)

2.2 数据加载

把清洗好的数据文件上传到 hdfs ,然后加载到 impala,后续就可以直接用 impala 进行数据分析。

与 hive 不同,impala 不支持加载本地数据文件,只能加载 hdfs 数据文件,所以需要先把数据文件上传到 hdfs。

# csv 上传到 hdfs
hdfs dfs -put SZTcard.csv /tmp/
-- 建表
CREATE TABLE `sztcard`(
    `card_no` string COMMENT '卡号',
    `deal_date` string COMMENT '交易日期时间',
    `deal_type` string COMMENT '交易类型',
    `deal_money` float COMMENT '交易金额',
    `deal_value` float COMMENT '交易值',
    `equ_no` string COMMENT '设备编码',
    `company_name` string COMMENT '公司名称',
    `station` string COMMENT '线路站点',
    `car_no` string COMMENT '车牌号',
    `conn_mark` string COMMENT '联程标记',
    `close_date` string COMMENT '结算日期'
)
row format delimited
fields terminated by ','
lines terminated by '\n';

-- 加载数据
LOAD DATA INPATH '/tmp/SZTcard.csv' OVERWRITE INTO TABLE sztcard;

2.3 数据预览

数据加载完成后,查看一下数据情况,发现有两个金额字段,但是没有给出数值单位。通过红色框框出来的这个旅途(卡号AEAAAACHG ,草铺>>少年宫),到网上 搜一下 ,可以看到票价是 4 元,可见这两个字段都是单位都是 分。并且,deal_value 就是票价,而 deal_money 就是实际的消费金额,所以本次是半价,结合目的地,AEAAAACHG 可能是一张学生卡。

image-20210111101058379

image-20210111101224635

然后再查看一下数据集的日期分布,可以看到 2018-09-01 数据量比较大,但是时间范围只有半天。而 2018-08-31 相比之下数据量非常少,但是时间范围是一整天,后续在做一些时间上的分析,应该注意到这点。

image-20210111135936951

最后在看下公司名称分布情况,没有看到什么 某某便利店之类的名称,可见该数据集并没有商店消费的数据,全部都是交通出行的数据。

image-20210111103044070

3. 数据分析可视化

3.1 乘客主题

(整体) 通勤费用

整体的通勤次数为 872,761 人次,总费用为 2,414,023 元,平均每次出行花费 2.76 元。

交通工具上来看,坐巴士平均每次为 1.7 元,坐地铁则要 3.9 元。

image-20210111144558227

从交通优惠的普及情况来看,受众还是非常广的,只有 1,235 人次是购买的全票,占比仅为千分之一(1,235 / 872,761)。

image-20210111170838225

(整体) 出行时间分布

2018-08-31 每小时的出行人次,从中可以看到晚高峰是在 18-19 点之间,早高峰在 8-9 点之间,可能由于数据集本身的不完整,所以早高峰看起来不是很明显。

image-20210111140713504

2018-09-01 每小时的出行人次,从中可以看到早高峰在 8-9 点之间,由于只有半天的数据,所以看不到晚高峰。

image-20210111140831849

(地铁) 通勤时间

由于地铁是进出站都要刷卡,所以可以通过二者之差来计算地铁的通勤时间。平均通勤时间为 29.6 分钟。

image-20210111160441381

3.2 地铁主题

(基于站点) 进站人流量 top

image-20210111161122771

(基于站点) 出站人流量 top

image-20210111161305207

(基于站点) 进出站人流量 top

image-20210111161623491

(基于站点) 站点收入 top

image-20210111161658050

(基于线路) 运输贡献度 top

运输贡献度计算规则:进站算一次,出站并且联程算一次。从下图可以看到 五号线的运输贡献度最高,九号线的贡献度最低。

image-20210111162445205

(基于线路) 运输效率 top

单程直达每乘客的平均通勤时间可以体现运输效率,从下图可以看到,地铁 9 号线的运输效率最高,平均为 15.81 分钟/人次。

image-20210111163147394

(基于线路) 换乘比例 top

从地铁出来后还需要换乘的乘客占比,可以看到 五号线 的换乘比例最高 15.7 %,九号线 换乘比例最低 9.4 %

image-20210111164517118

(基于线路) 线路收入 top

image-20210111165131124

3.3 巴士主题

(基于公司) 巴士公司收入 top

image-20210111171544799

(基于公司) 巴士公司运输贡献度 top

image-20210111171628898

参考

数据来源:https://opendata.sz.gov.cn/data/api/toApiDetails/29200_00403601

数据集和代码

链接:https://pan.baidu.com/s/1SZzHQc4_tj3z8quBaiMVtg
提取码:vig7
复制这段内容后打开百度网盘手机App,操作更方便哦

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
RFID公交刷卡系统是一种基于无线射频识别技术实现的公交支付系统。其基本原理是:将RFID标签(包括卡片和读写器)贴在公交车上,乘客携带RFID卡片乘车时,过车门口的读卡器进行刷卡,系统自动扣除相应的车费并记录刷卡信息,实现公交车的智能化管理。 下面是RFID公交刷卡系统的设计方案: 1. RFID标签的选择:根据公交车的特点和需求,选择适合的RFID标签,包括卡片和读写器。卡片需要具备高速读取、大容量存储、安全可靠等特点,读写器需要具备高速读取、远距离识别、抗干扰等特点。 2. 系统架构设计:系统包括公交车端和中央服务器端。公交车端包括车载读写器、RFID标签和车载计算机等,负责读取卡片信息、进行车费扣除和数据传输等。中央服务器端负责数据存储、处理和分析等。 3. 数据传输安全设计:为保证数据的安全性,需要采用加密技术对数据传输进行保护。可以采用SSL/TLS协议进行加密传输,并使用数字证书进行身份认证。 4. 系统管理和监控:为了实现公交车的智能化管理,需要对系统进行管理和监控。可以使用GPS定位技术对公交车进行实时定位,使用视频监控系统对公交车进行监控,以及使用数据分析技术对系统进行评估和优化。 5. 用户体验设计:为了提高用户体验,需要设计方便快捷的刷卡方式,并提供在线充值、查询余额、投诉建议等服务。同时,还需要保证系统的稳定性和可靠性,确保用户的刷卡和支付过程顺畅无阻。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RunsenLIu

顺便点一个赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值