Neha Goel, MathWorks
在本视频中,我们将演示如何在MATLAB中以多种格式和多种采样率处理和清理存储在Excel表格中的时间序列数据®.我们首先使用导入工具从Excel表格导入数据。接下来,我们将重点介绍如何准备数据以将其转换为时间表数据类型。
然后,我们将探索时间表可用的预处理功能,包括将数据集同步到公共时间参考,评估数据质量,以及处理重复和缺失数据。最后,我们展示了变量与行时间的堆叠图。
在数据科学中,人们常说80%的时间花在准备数据上,20%的时间花在抱怨需要准备数据上。因此,让我们尝试通过在更短的时间内用MATLAB中的几行代码准备和预处理时间序列数据来解决这个问题。
在本例中,我们将使用相量测量单元(pmu)的数据。
所以,是的,我们需要对数据进行整理和清理,以便进行进一步的分析。
我们的数据在三个Excel电子表格中,三个时区各一个,我们将使用Import Tool导入数据。如果我们在MATLAB中打开电子表格,默认情况下,它会在导入工具中打开。单击导入数据。然后,数据以表的形式存储在工作区中。
为了处理时间序列数据和处理特定于时间的函数,MATLAB有一个数据类型时间表
这使得处理更容易。把表格转换成时间表,我们的时间应该在datetime
格式。
方法将时间列从每个表中提取出来并将其转换为datetimedatetime
函数。在同一行代码中,我们处理数据集的第一个挑战;数据位于三个不同的时区,偏移量不同。因此,在同一步骤中,我们通过将时区作为选项来对齐时区:澳大利亚/悉尼为东部夏令时,澳大利亚/阿德莱德为中央夏令时,澳大利亚/布里斯班为东部标准时间。
让我们用每个PMU的时间绘制频率测量图,以直观地确认时间对齐。我们可以看到频率重叠。因此,我们的时间排列是正确的。
一旦我们的时间列采用datetime格式并对齐,我们就可以使用函数将所有三个表转换为时间表table2timetable
.我们现在有了三个时间表格式的表格。
接下来,我们继续清理数据。正如我们在这个链接的MATLAB文档中看到的,我们可以使用各种工作流程来处理和清理时间表,比如查找和删除缺失的数据,排序和删除重复的数据等。
这里我们演示了一种处理重复时间的方法。首先,使用唯一的函数创建一个向量UniqueTime
它返回时间变量的唯一且已排序的行。这个向量不包含重复的行次数。为了验证,我们在这里检查有7个重复的行雾凇。我们使用调整时间
函数计算具有重复行时间的所有其他变量的平均值。因此,现在我们有了一个没有重复行时间的新表UniquedataACDT。我们对另外两个表进行类似的处理。现在我们将使用三个新表。
可以用不同的方式处理缺失的数据。对于单个时刻表,我们可以使用次rmi
函数并删除所有缺少数据的行。正如我们在这里对UniquedataACDT表所做的那样。
另一种方法是在连接表时使用插值。
属性将所有三个表连接到一个时间表中同步
函数。Synchronize从所有输入时间表收集变量,并输出一个水平连接所有变量的时间表。
这里我们指定联盟
在包含所有三个时间表时间的时间向量上同步。和线性
用线性插值法填充缺失的时间表元素。
因此,现在我们有了一个由所有三个干净的时间表组成的Total表。
一旦我们清理了所有的数据,我们可以通过绘制数据来进行一些可视化分析。
这里我们展示了一个使用stackedplot
函数。Stackedplot
根据行时间绘制时间表的变量。我们将电压值VM6、VM1和VM11与总组合表中的行时间进行对比。
请参阅描述以查看更多关于数据预处理的资源,并下载代码来尝试使用您的数据集。
谢谢你!