Pandas 重采样的替代方案
Posted
技术标签:
【中文标题】Pandas 重采样的替代方案【英文标题】:Alternative for Pandas resample 【发布时间】:2018-07-14 12:35:36 【问题描述】:我正在寻找针对resample
time series
大规模数据(数千万或数亿条数据记录)的解决方案。 Pandas
resample()
运行良好,直到达到大约 10 条 mio 数据记录,然后它实际上停止工作,因为硬件没有足够的内存。在庞大的数据集上,我曾多次使用 Pandas 遇到这个问题。但是,如果我只是在大型数据集上使用 for 循环,我可以读取数据并使用它,即使它要慢得多。有人知道没有pandas
的resample time series data
的好解决方案吗?
数据源是 mysql 服务器,记录包含 OHLC 数据和时间戳。时间序列的频率为 1 分钟,重采样频率为 5 分钟、30 分钟、1 小时、6 小时、1 天、1 小时、1 米,我都存储到不同的表中。我考虑将来切换到 mongoDB。
【问题讨论】:
由于重采样只需要本地(而不是全局)数据,您应该能够通过将时间序列分成块来解决问题。一次将一个块加载到 Pandas 系列中。重新采样系列并存储结果。对每个块重复该过程。要获得比这更具体的信息,我们需要更多信息。了解时间序列的来源会有所帮助——它是 CSV(什么格式?)还是数据库? (什么服务器?什么架构?)。时间序列的频率是多少,重采样频率是多少?您希望将数据存储在何处以及以何种格式存储? 感谢您的反馈。我已经用相应的信息更新了我的问题 【参考方案1】:看看这个: Pandas Panel resampling alternatives
同时这个包被称为 xarray。虽然您可以查看 dask,它与 xarray 一起可以提供快速的并行重采样(以及许多其他 numpy 和 pandas 函数)。
【讨论】:
以上是关于Pandas 重采样的替代方案的主要内容,如果未能解决你的问题,请参考以下文章