我负责十多个地灾项目,经常需要了解设备的离线情况。
公司网站按项目提供了excel表格,看起来较乱,这是下载的数据:
从原始表格里,不太容易看出这些信息:
- 这个项目下有哪些设备类型
- 每种类型有多少设备在线
- 设备上线的时间顺序
这是用脚本,将数据排序分组配色
后的效果(脚本和数据文件见文末)
排序
先将“最后上线时间”一列设置为行索引,使用pd.to_datetime转换为datetime类型,再排序
1 |
|
输出:
分组
分组可以从“设备别名”这列获取,新增一列“设备类型”
1 |
|
输出:
配色
一周内
离线的设备,用蓝色标注1
2
3now = datetime.now().strftime('%Y-%m-%d') sevenDaysAgo = (datetime.now() + timedelta(days=-7)).strftime('%Y-%m-%d') new3.style.highlight_between(left=sevenDaysAgo,right=now,subset=['最后上线时间'],props='font-weight:bold;color:rgb(64, 158, 255)')
输出:
- 给每种类型加上颜色
1
2
3
4
5new3.style.highlight_between(left=sevenDaysAgo,right=now,subset=['最后上线时间'],props='font-weight:bold;color:rgb(64, 158, 255)')\ .highlight_between(left='普适型声光报警器',right='普适型声光报警器',subset=['设备类型'],props='background:#c7f5fe')\ .highlight_between(left='普适型声光报警器',right='声光报警器',subset=['设备类型'],props='background:#c7f5fe')\ .highlight_between(left='普适型GNSS基准站',right='普适型GNSS基准站',subset=['设备类型'],props='background:#ffa5a5')\ .highlight_between(left='普适型GNSS监测站',right='普适型GNSS监测站',subset=['设备类型'],props='background:#a1eafb')\
输出:
在线
状态的设备,用黄色标注1
.highlight_between(left='在线',right='在线',subset=['连接状态'],props='background:#f9ed69')
输出:
脚本和数据文件
文件下载地址: http://ssw.fit/file/
1 |
|
小结
项目经理要我整理某个项目的离线表给他,修改下脚本里的sheet_name即可。是不是省事呢?
- 省去登录网站下载excel
- 省去整理表格
如果你觉得本文对你有帮助,还请点个赞支持一下~