【发布时间】:2023-02-22 06:03:48
【问题描述】:
我有一个 80,000 行的 csv 文件,由四列 ID、日期、时间和流程组成。如果流量数据曾经丢失,则跳过丢失的数据,直到记录新的流量数据,然后数据继续记录。每 15 分钟进行一次流量测量。
例子:
USGS 2/12/2023 0:45 167
USGS 2/12/2023 1:00 170
USGS 2/12/2023 1:15 177
USGS 2/12/2023 1:45 170
USGS 2/12/2023 2:00 164
USGS 2/12/2023 2:15 177
USGS 2/12/2023 2:30 170
USGS 2/12/2023 2:45 180
此处 2023 年 2 月 12 日的记录数据中缺少 1:30。这些丢失的数据可能是一次性的,也可能会持续数小时或数天。
我正在尝试编写一个 python 脚本来搜索缺失的时间步长,每当它找到一个跳过/缺失的行时,它就会在缺失的位置添加一个替换行,并使用正确的 ID、日期、时间和 NA 进行流。
例子
USGS 2/12/2023 0:45 167
USGS 2/12/2023 1:00 170
USGS 2/12/2023 1:15 177
USGS 2/12/2023 1:30 NA
USGS 2/12/2023 1:45 170
USGS 2/12/2023 2:00 164
USGS 2/12/2023 2:15 177
USGS 2/12/2023 2:30 170
USGS 2/12/2023 2:45 180
或者
USGS 1/16/2023 23:00 329
USGS 1/16/2023 23:15 329
USGS 1/16/2023 23:30 329
USGS 1/16/2023 23:45 NA
USGS 1/17/2023 0:00 NA
USGS 1/17/2023 0:15 NA
USGS 1/17/2023 0:30 329
USGS 1/17/2023 0:45 329
USGS 1/17/2023 1:00 329
USGS 1/17/2023 1:15 329
USGS 1/17/2023 1:30 329
目前,我能够找到我们替换数据集中单个值的解决方案,例如 1:30 的时间值或没有描述替换整行缺失数据的流值。
【问题讨论】:
-
创建一个使用时间作为键的字典。然后就可以循环遍历该时间范围内的所有15分钟时间戳。如果缺少该密钥,请使用默认数据添加它。
标签: python csv data-cleaning