1

问题

我想制作一个工具来查找 Pandas HDFStore 的排序列中的值转换边界。对于广泛的数据分布,我想尽可能快地做到这一点。

例子

给定一个大的排序列

[1, 1, 3, 3, 3, 3, 3, 5, 6, 9, 10, 10, 10, 15]

我将选择几个固定间隔的位置

[1, 1, 3, *3*, 3, 3, 3, *5*, 6, 9, 10, *10*, 10, 15] 

从这些我想向右移动到值转换的下一个点,即下一个值与当前值不同的位置

[1, 1, 3, 3, 3, 3, *3*, *5*, 6, 9, 10, 10, *10*, 15] 

无论我得到的数据分布如何,我都想快速而稳健地做到这一点。

一些担忧

  • 从磁盘加载我的数据可能很大且成本很高。我不想将整个事情加载到内存中
  • 相反,我怀疑一次加载一个元素会非常慢,所以我可能想要拉入 100 行或其他内容的块。这里有什么好的经验法则?
  • 我可能有很多专栏。鉴于我只关心一列,我如何最好地避免不必要的成本(我知道 HDFStore 是面向行的,不过,这里可能有一些聪明的东西)
  • 我可能会遇到很长的排序序列(数十万个元素)
4

0 回答 0