我想重新采样我的数据,以便每个索引的日期时间之间的每个间隔有 512 秒。找到了resample
方法pandas
,但是不能正常使用,因为最后会修改太多原始数据(原始数据的真实性不一样)。但是,我想到了一种可能性,如果在日期时间之内,间隔只有2个数字,它们也可以相互划分(512:4 = 128)。问题是它们的出现可以计算任意数量。
使用以下代码计算索引的间隔:
intervals = np.array(round(df.index.to_series().diff().dt.total_seconds().fillna(0)))
我的索引的间隔是这样的:(因为我的数据每 4 或 512 秒记录一次)
{4, 4, 4, 4, 4, 4, 4, 4, 4, 512,512, 512, 512, 512, 512, 512, 4, 4, 4, 4, 4, 512, 512, 512, 4, 4, 4, 4, 4, 4, 4, 4, 512, 4, 4, 4, 4, 512, 512, 521, 512, ...}
问题是有时数据每 4 秒记录一次,持续 5 分钟(因此没有足够的时间来达到 512)然后它可能会出现 512 等等,如上例所示。这是一个问题,因为我首先想到也许我应该每 512 秒循环一次,然后删除所有不在该间隔内的行。(我删除它们是因为我只需要每512秒记录一次数据,实际上没有必要知道它在间隔内是什么。它可能会增加,但它会改变很多。)我需要使其成为每 512 个,但不使用重采样方法,因为如果我观察得好,它会破坏数据的真实性。
总而言之,两个主要条件是:一是尊重并保持数据的真实性;二是最终每512秒记录一次数据。所以,我问你们,这个领域的专家,你们认为最适合我的情况的方法或算法是什么?
PS:我一直在寻找其他方法,比如 resample 但更好,但我没有找到合适的方法。但是,我愿意接受新想法!让我知道是否应该添加有关该问题的其他详细信息。
非常感谢。
慕桂英4014372
相关分类