用快捷指令批量导入健康数据|少数派会员π+Prime

年初开始,我爸就时不时遇到手机莫名发烫重启或app突然闪退等问题,让我意识到他手上那部2018年初买的一加5T该退休了。一加简洁的「氢OS」是我之前一直坚持使用一加手机的重要原因,可时至今日,一加终于也向市场妥协,让我决定把我父母的手机也从Android转向iOS。

但我很快发现苹果的转移助手漏掉了一个很重要的数据:备忘录。

我爸最近这两年偶尔会有血压升高的情况,所以他之前会时不时地把自己测量的血压数据记录到手机的备忘录里,前前后后已经产生了近700条不是特别规范的纯文本血压和心率记录。如何把这些数据导入iPhone成了问题。

我首先大致在iOS健康app里摸索了一下,发现这个app并没有提供批量写入数据的功能,只提供了手动添加数据的功能。

简单尝试之后我就明确了方案:先把我爸手动记录的备忘录数据清洗整理成格式统一的文本,发到iPhone上;再用快捷指令功能挨个处理这些文本数据,提取其中的关键信息,写入健康app。

首先要解决的问题就是数据格式不统一。我爸用备忘录记录血压数据没有一个特别规整的格式,以下是几个例子:

20210313星期三11:00142/786420210314星期日晴20℃06:54165/89心率7020210316星期二小雨17℃07:15146/82心率6720210319星期五阴11℃07:25148/82心率6509:58161/79(1)73152/77(2)76可以看到,这些数据除了血压,有时还会记录天气,其中的气温有时在日期的同一行,有时在单独行;数据之间有时会用单个空格分隔,有时会用多个空格;有时一天会连续记录两条;有时会用中文标记「心率」……

这样的数据很难用被批量处理,所以我需要先把所有数据都「清洗」成统一的格式。

数据清洗的方法其实非常多也非常灵活,需要结合数据的特点和自己的能力范围来选择合适的工具和方法。这里,只简单介绍几种最基础的常见手段供大家打开思路。

注意到记录中的日期都是2021或2022开头,所以先选中第一行前面的「202」,然后可以选择如下方法之一:

这样就可以一次性选中文档中所有的「202」。

现在按一下右箭头键,就能在文档中所有2021或2022之后添加一个光标。按钮把光标一起移动到每个日期行中的日期数据后面,然后用Command+Shift+→组合键(将选中区域延伸到行尾),从而批量选中每个日期行中除日期以外的数据。

最后一下按删除键,日期数据就被「清洗」干净了。

接下来,我们用查找替换的功能删除数据中与心率无关的信息。

首先是一个简单的纯文本查找:要删掉所有的「心率」字样,直接用Command+F打开搜索替换面板,搜索「心率」并批量替换为空即可。

接下来删除气温数据。由于涉及变量,需要使用正则表达式。为此,点击搜索框最右侧的按钮,启用正则表达式匹配。

这里用到的正则表达式是:

[0-9]{2}℃\n它的意思是,连续两个数字,后接一个摄氏度符号℃,后接一个换行。

将其替换为空,就去掉了所有单成一行的气温数据。

再来删除用来标记多次记录的数字编号(1)、(2)等。用到的正则表达式是:([0-9]),同样替换为空。

最后去掉多余的空格。这里既可以用普通搜索,将两个空格替换为一个空格,多次操作直到不再有连续空格;也可以用正则表达式\s{2,},搜索两个或以上的连续空格,替换为一个空格。

经过上面一系列操作,数据就变成了下面这样,明显更加清爽:

2021031311:00142/78642021031406:54165/89702021031607:15146/82672021031907:25148/826509:58161/7973152/7776统一记录格式:使用JavaScript能不能再整洁一点呢?我想将格式统一成「YYYYMMDDHH:MM/高压/低压/心率」这样的格式。为此,一点点在编辑器中查找替换当然也可以,但要想一步到位,就得写一点简单的程序了。

以Chrome或Edge浏览器为例:随便打开一个新标签页,按F12键就打开开发者工具,然后这时切换到「控制台」选项卡。

现在,把我们刚刚处理了一半的数据赋给上面代码中的data变量,即粘贴到代码第一行的一对反引号``内部,然后将代码整体粘贴到控制台中:

按下回车键,就可以看到程序输出的结果了:

选中程序输出的数据,保存为文本文件,发送到iPhone上。

至于如何传输,方法很多:

这一节,我简要的介绍了多选、查找替换、正则表达式匹配、JavaScript脚本这几种数据清洗方法。其中正则表达式和JavaScript编程可能会有一些门槛,但这也不是必须的,你完全可以使用你自己熟悉的各种方法来清洗数据。比如,如果你熟练掌握Excel,上面那些数据处理步骤用Excel也能完成。

清洗和传输数据后,终于到了激动人心的快捷指令编排环节。

2022051505:55/148/79/582022051505:58/136/76/582022051513:16/137/72/68根据这个数据结构,快捷指令的逻辑就是:

其中第三步的处理过程又分为这几个步骤:

逻辑梳理清楚了就开干啦,首先把最外层的框架编排出来。遵循循序渐进的原则,比较复杂的第三步暂时不做,用一个「显示通知」占位,顺便测试效果。

这时复制三条数据测试一下:

可以看到,执行快捷指令之后,会连续弹出三条通知把刚刚复制的数据内容显示出来,说明快捷指令的外层循环框架已经完成了。

接下来就是编排第三步里面的逻辑。将之前用来占位的通知步骤替换为红框中的部分:

经过测试,弹出的通知能按照给定格式显示数据,说明我们的数据拆分逻辑是正确可行的。

接下来就是把这些数据写入健康app了。将上一步中的显示通知步骤替换为下图中的步骤:

这里,我们提取之前步骤获得的各项信息,填写到「记录健康样本」步骤的各个栏位中。

好了,一切就绪,让我们先用几条测试数据来看看效果:

可以看到,三条数据在执行快捷指令后立刻就被写入了健康app。在健康app中查看时,显示的图标也说明这些数据是由快捷指令写入的。

数据和脚本都准备好了,就可以正式开始导入数据了。

首先把电脑上准备好的文本数据文件发到手机上,并保存到「文件」app中。长按这个文件,点选「快速查看」,然后长按并拖动选区,直到将整个文件的所有内容都选中后,点击复制,这样文件内容就都保存到剪贴板中了。

现在来到快捷指令app中,点击运行我们刚刚编写好的快捷指令。如果你的数据量比较多,可能需要多等一会;快捷指令的右上角此时会显示一个进度圆环:

比如我一次导入了将近700条数据,在这个状态大概等了差不多1分钟,等到右上角按钮变成对勾的时候,数据就导入完成啦。

THE END
1.数据清洗的重要性与技巧:提升大数据分析的准确性和效率提升模型性能:在机器学习和数据分析领域,模型的性能在很大程度上依赖于输入数据的质量。数据清洗包括特征选择和特征工程,这些步骤可以帮助模型更好地识别数据中的模式,从而提高模型的预测能力。 节省时间和资源:在数据分析的早期阶段进行数据清洗可以避免在后续阶段进行昂贵的修正。自动化数据清洗流程可以进一步节省时间和资https://blog.csdn.net/Shaidou_Data/article/details/144110971
2.国外客商数据清洗示例不完整的数据会污染数据库,降低其业务质量。 数据清洗,通常也称为数据清理,实际上不是对数据库的单个活动,而是涉及多种技术使用的整个过程。他们的目标是:拥有一个干净、可靠、一致和完整的数据库。干净的数据无非就是高质量的数据,我们可以信任的数据,并可以根据这些数据做出正确的决策。在商业领域,据估计每年有25https://36kr.com/p/2707385155614849
3.数据清洗的概念及实战案例(配图)!!!51CTO博客# 数据分析的过程和别的过程没什么区别 只要明确思路 其他都不难 拿做菜举例 # 类比定义 数据分析过程 做菜过程 明确需求 明确做什么菜品 收集采集 去菜市场买菜 数据清洗 洗菜切菜配菜 数据分析 炒菜 数据报告 + 数据可视化 拍照发朋友圈吃 # 专业定义 https://blog.51cto.com/u_15127637/4278148
4.数据清洗HRTechChina.com如何清洗人力资源分析数据?给你6个详细的步骤指南!数据清理是人力资源分析中的关键因素。在你分析数据之前,你需要对数据进行 "清洁"。在这篇数据清理指南中,我们将解释为什么数据清理很重要,以及你如何进行数据清理。在文章的底部,我们附上了一个有用的数据清洗信息图。 在数据分析中常说的一句话是。"垃圾进,垃圾https://www.hrtechchina.com/tag/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97/
5.如何进行数据清洗和预处理?如何进行数据清洗和预处理? 收藏 在数据分析和机器学习任务中,数据清洗和预处理是非常重要的步骤。这些过程可以帮助我们从原始数据中提取有价值的信息,并减少由于数据质量问题导致的误差和偏差。 本文将介绍数据清洗和预处理的基本步骤和技术,并提供一些实践建议和例子。https://www.cda.cn/bigdata/202679.html
6.“是什么让我们‘一见钟情’?”——基于“快速约会”数据的分析及我们常说“一见钟情”,但又是什么因素导致了一见钟情呢?哥伦比亚大学的一项基于一次“快速约会”结果的实验数据给我们提供了丰富的研究背景。利用一些数据科学中基本的数据处理手段以及R中的可视化工具,我们获得了许多有趣的结论。 二、数据清洗 此数据集原本有195列数据。但是考虑到我们的目标是预测两人配对http://www.stat.tsinghua.edu.cn/student-achievement-display/%E6%98%AF%E4%BB%80%E4%B9%88%E8%AE%A9%E6%88%91%E4%BB%AC%E4%B8%80%E8%A7%81%E9%92%9F%E6%83%85%EF%BC%9F-%E5%9F%BA%E4%BA%8E%E5%BF%AB%E9%80%9F/
7.Prompt用得好,增长工作下班早1.数据清洗 你是一位资深数据分析师,具备深厚的数据分析技能与行业经验。你擅长应用各种数据分析工具和技术,对数据进行挖掘、整合、分析,现在我有一份销售数据,是jason格式的,帮我把数据处理一下,直接输出表格。 2.找数据分析思路 你是一位XX行业的市场营销分析专家,请根据这份数据集合,给出4个不同方向的分析主题https://www.niaogebiji.com/article-645093-1.html
8.玩转逻辑回归之金融评分卡模型消费金融风控联盟数据预处理主要包括数据清洗,变量分箱和 WOE 编码三个步骤。 2.3.1 数据清洗 数据清洗主要是对原始数据中脏数据,缺失值,异常值进行处理。关于对缺失值和异常值的处理,我们采用的方法非常简单粗暴,即删除缺失率超过某一阈值(阈值自行设定,可以为30%,50%,90%等)的变量,将剩余变量中的缺失值和异常值作为一种状态https://www.shangyexinzhi.com/article/5177142.html
9.如何用Excel实现多重条件匹配与分段计价日记2、生成的Excel不能直接使用,需要数据清洗。大概就是: a、去掉样式,去掉空白行列。 b、替换无法识别的字符,数据转为纯数字。 c、从文本中识别数据,比如要将9行和11行的包裹类型、长、宽、高提取出来,转化为我们需要的标准化数据表格式,这种格式能够被函数识别并匹配包裹类型和报价。 https://m.douban.com/note/815266757
10.机器学习数据清洗之识别异常点数据是现代社会中的一种宝贵资源,但在利用数据之前,我们需要进行数据清洗以确保数据的质量和准确性。 异常值是数据中常见的问题之一,它们可能会对分析和建模产生负面影响,因此识别和处理异常值是数据清洗过程中的重要步骤之一。 本文将介绍异常值的概念、危害以及与缺失值的比较,并探讨了多种识别异常值的方法,包括基于https://www.jianshu.com/p/6676be6cdae4