日常篇(1):数据处理习惯及VSCode使用简介
介绍一下Vscode Python环境配置,并小结一下自己目前基于Python的数据分析工作习惯。
之前的模式是基于Anaconda环境,使用Jupyter Notebook/Lab和pycharm,现在是基于Miniconda,用VSCode为主;至于涉及空间的处理,则主要是基于Python库(Gdal; geopandas...)、ArcPy以及QGIS、ArcMap等软件。
ps: QGIS在一些功能和处理速度等功能比ArcMap好用些,比如 Spatial join; Zonal statistic等,好用且速度更快,遗憾的是感觉QGIS的Python脚本功能不如ArcPy。
背景
言归正传,尽管jupyter notebook/lab是广为推崇的Python数据分析利器,我也用了很长一段时间,但网页版的jupyter偶尔出bug,每次启动还需要启动浏览器,且在文件夹及数据管理等方面不太方便,在好朋友推荐下转向了支持Jupyter的开源且轻巧的vscode,上手了一段时间觉得很舒服~
Vs Code的使用简介
下载链接官网,官方文档VSCode API
- 下载软件并安装,建议勾选”将打开文件添加到右键菜单”,方便在任意文件夹右击新建脚本
- 安装插件
具体看之后更新的这个推文-Python环境(2):安装及配置
jupyter notebook
最好是在本地预装好Miniconda 或 Anaconda,个人推荐前者
安装好之后在设置处搜索Python。然后找到添加conda env的地方将conda的安装路径填入
.py script
运行脚本时需要从上方打开Terminal-命令行窗口~
我的工作模式
不论数据获取、处理还是分析,编程都只是实现任务的工具之一,所以最核心的还是目的及思路步骤。
好记性不如烂笔头,对我而言记录逻辑和步骤是十分重要的,这便于复用和查错。
问题思路
这方面很难讲,我个人目前是习惯
- 先捋捋问题的核心是什么,最后要得到什么样的输出和数据结果,需要兼顾的问题等等
- 然后花一段时间结合数据、经验与熟系的工具拟定初步方案(这步若卡住则需要多做功课或请教师兄师姐老师)
- 觉得想清楚了差不多了就开始动手想具体步骤,也即实现方案的具体步骤
- 开始上手,代码+软件齐上阵,过程中记录出现的问题并视情况调整
- ……
如下图,这是我近期处理数据时候记录的一些笔记(基于typora),供参考,我也是最近才开始文本记录,对于一些步骤多点的任务,最好还是记录一下,当然,后续也会试情况不断调整和完善需要记录的内容,目前:
- 输出结果,时间
- 处理思路/步骤|时间记录
- 问题记录
- 主要代码附录
另外,实际一些小的案例,直接写在py脚本的开头简单写写就行,很多软件都有添加脚本header信息的功能,如以下案例我需要将网站抓取的原始GPS轨迹数据处理为表格,于是我的文件头是:
1 | # -*-coding:utf-8 -*- |
总之,在数据处理分析过程中,充分捋清并记录自己的思维逻辑和实现步骤,并记录出现得到问题,能够提高效率
代码/工具实现思路
Python包的使用主要是依靠多看多记来熟练,此外,学会并且习惯看文档
通常数据量不大,不考虑效率会有很多种方法达到目的,查就好了,至于大的数据或者较慢的操作如空间处理,则需要通过多进程或者优化数据类型、代码逻辑来加速了,此处暂不展开
在有了思路的基础上,我写代码的习惯是遵循逻辑分解,Step by Step
- 过程中要实时记录和调整思路
然后先在IPython或者jupyter中编写并实时调试,大量的数据一般是先跑一个案例测试
完成调试后加循环,视情况编写函数遍历或并行,如果文件很多或很大建议循环时加try记录报错情况(避免挂着程序以为能跑一晚上结果10分钟就报错了hh)
最后,如果代码行数较多时或需要并行则新建‘.py’文件写一下
...