【发布时间】:2020-11-28 09:44:13
【问题描述】:
我想重新采样我的数据,以便每个索引的日期时间间隔为 512 秒。
我从pandas找到了resample方法,但是由于原始数据最终会被修改太多(原始数据的真实性不会相同),因此无法正常工作。但是,我想到了一种可能性,如果在日期时间内,间隔只有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秒记录一次。 所以,我问你,这个领域的专家,你认为哪种方法或算法最适合我的情况?
P.S.:我一直在寻找其他方法,例如 resample 但更好,但我没有找到合适的方法。但是,我对新想法持开放态度!让我知道是否应该添加有关该问题的其他详细信息。
非常感谢。
【问题讨论】:
标签: python pandas datetime indexing time-series