【发布时间】:2016-05-02 09:03:45
【问题描述】:
我有 2 个 Excel 文件。 文件 1 说明: - 数据频率:1Hz - 总行数:62,000
文件 2 说明: - 数据频率:10 Hz - 总行数:616,000
手头的任务:
要合并两组数据,对文件 2 使用同一秒内 10 个数据点的平均值。
两个文件中的第一列是时间戳,并且记录的数据持续时间相同。但是,时间戳并不相同,并且总是以毫秒为单位。
我的方法: 我使用 pandas 将 excel 文件作为 Dataframes 读取。
对于较小的数据集,我已经能够使用 for 循环来完成此操作。但是,由于数据量大,使用 for 循环非常麻烦且速度慢。 为了在文件 2 中对每秒 10 个点进行滚动平均,我之前使用了嵌套的 for 循环。同样,由于数据的性质,几乎不可能使用相同的方法。
对于解决此问题的方法,我将不胜感激。
【问题讨论】:
-
您可以只
resample第二个 df 然后截断日期时间,因此毫秒无关紧要,因为您重新采样 10 hz 以匹配 1hz 采样,因此您可以删除毫秒组件跨度> -
据我了解,
resample需要一个恒定的时间增量。虽然每秒有 10 个数据点,但每次记录数据时,时间增量大约会变化 2-3%。 -
那么您必须决定如何存储您的数据,2-3% 的差异是否重要取决于您。无论如何,您无法进行完全匹配,因此您需要想出一些策略来合并您的数据
标签: python excel loops pandas dataframe