【问题标题】:Alternative for Pandas resamplePandas 重采样的替代方案
【发布时间】:2018-07-14 12:35:36
【问题描述】:

我正在寻找针对resampletime series 大规模数据(数千万或数亿条数据记录)的解决方案。 Pandas resample() 运行良好,直到达到大约 10 条 mio 数据记录,然后它实际上停止工作,因为硬件没有足够的内存。在庞大的数据集上,我曾多次使用 Pandas 遇到这个问题。但是,如果我只是在大型数据集上使用 for 循环,我可以读取数据并使用它,即使它要慢得多。有人知道没有pandasresample time series data 的好解决方案吗?

数据源是 MySQL 服务器,记录包含 OHLC 数据和时间戳。时间序列的频率为 1 分钟,重采样频率为 5 分钟、30 分钟、1 小时、6 小时、1 天、1 小时、1 米,我都存储到不同的表中。我考虑将来切换到 mongoDB。

【问题讨论】:

  • 由于重采样只需要本地(而不是全局)数据,您应该能够通过将时间序列分成块来解决问题。一次将一个块加载到 Pandas 系列中。重新采样系列并存储结果。对每个块重复该过程。要获得比这更具体的信息,我们需要更多信息。了解时间序列的来源会有所帮助——它是 CSV(什么格式?)还是数据库? (什么服务器?什么架构?)。时间序列的频率是多少,重采样频率是多少?您希望将数据存储在何处以及以何种格式存储?
  • 感谢您的反馈。我已经用相应的信息更新了我的问题

标签: pandas for-loop time-series resampling


【解决方案1】:

看看这个: Pandas Panel resampling alternatives

同时这个包被称为 xarray。虽然您可以查看 dask,它与 xarray 一起可以提供快速的并行重采样(以及许多其他 numpy 和 pandas 函数)。

【讨论】:

    猜你喜欢
    • 2016-01-12
    • 2022-12-22
    • 2020-08-29
    • 2018-06-06
    • 2013-06-09
    • 2022-01-25
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多