如何解决Excel Power Query匹配Barologger与CT2X时间序列提前终止问题?
时间序列数据匹配异常问题
我手头有两组压力数据:Barologger数据间隔15分钟,CT2X数据间隔5分钟,需要尽可能将CT2X数据与Barologger数据按时间匹配。数据时间范围覆盖2024-09-02至2024-10-17,由于野外取回后分别下载,两组数据结束时间不同——CT2X结束于11:31,Barologger结束于12:05。
我使用Power Query编写了允许2分钟时间差的匹配代码,代码能运行,但仅返回1409行结果,且数据提前终止在2024-09-18 3:50,而实际数据应该没有时间中断。
代码运行前数据样本

代码运行后数据样本

所用Power Query代码
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Barologger DateTime (24hr)", type datetime}, {"Barologger LEVEL (cm)", type number}, {"CT2X Date / Time (24 hour)", type datetime}, {"CT2X Pressure (psi)", type number}}), #"Added Custom" =Table.AddColumn(#"Changed Type","Match CT2X", (r)=> let //生成每个时间点的差值列表 difs = List.TransformMany( #"Changed Type"[#"CT2X Date / Time (24 hour)"], each {_ - r[#"Barologger DateTime (24hr)"]}, (a,b)=> Number.Abs(Number.From(b))), //以2分钟(2/1440)为阈值,确定最小时间差对应的行号 pos = if List.Min(difs) < 2/1440 then List.PositionOf(difs,List.Min(difs)) else null in pos, Int64.Type), #"Filtered Rows" = Table.SelectRows(#"Added Custom", each [Match CT2X] <> null and [Match CT2X] <> ""), #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"CT2X Date / Time (24 hour)", "CT2X Pressure (psi)"}), #"Matching CT2X" = Table.TransformColumns(#"Removed Columns",{"Match CT2X", each Table.SelectColumns(#"Added Custom",{"CT2X Date / Time (24 hour)", "CT2X Pressure (psi)"}){_},type [#"CT2X Date/Time"=datetime, CT2X Pressure=number]}), #"Expanded Match CT2X" = Table.ExpandRecordColumn(#"Matching CT2X", "Match CT2X", {"CT2X Date / Time (24 hour)", "CT2X Pressure (psi)"}, {"CT2X Date / Time (24 hour)", "CT2X Pressure (psi)"}) in #"Expanded Match CT2X"
数据集
CT2X与Barologger数据文件
内容的提问来源于stack exchange,提问作者Will MacKenzie
相关产品推荐
相关产品推荐

