pandas 中的区间交集

Ale*_*ail 6 python interval-tree pandas

更新5:

此功能已作为 pandas 20.1 的一部分发布(在我生日那天:])

更新4:

PR已合并!

更新3:

PR已经搬到这里了

更新2:

看来这个问题可能有助于在 pandas 中重新开放 IntervalIndex 的 PR

更新:

我不再遇到这个问题,因为我现在实际上正在查询 和 的重叠范围AB而不是B查询落在 的范围内的点A,这是一个完整的区间树问题。不过我不会删除这个问题,因为我认为这仍然是一个有效的问题,而且我没有一个好的答案。

问题陈述

我有两个数据框。

在 dataframe 中A,两个整数列一起表示一个区间。

在 dataframe 中B,一个整数列代表一个位置。

我想做一种连接,以便将点分配给它们所属的每个区间。

间隔很少但偶尔重叠。如果一个点落在该重叠范围内,则应将其分配给两个间隔。大约一半的点不会落在一个区间内,但几乎每个区间都会有至少一个点在其范围内。

我一直在想什么

我最初打算将我的数据从 pandas 中转储,并使用IntervalTreeBanyanbx-python但后来我遇到了这个要点。事实证明,soyer 的想法从未进入 pandas,但它让我思考——也许可以在 pandas 中做到这一点,而且因为我希望这段代码能够像 python 一样快,所以我直到最后才将我的数据从 pandas 中转储出来。我也觉得这可以通过binspandascut函数实现,但我是 pandas 的新手,所以我可以使用一些指导!谢谢!

笔记

潜在相关?Pandas DataFrame groupby 可变长度的重叠间隔

Ale*_*ail 3

此功能作为 pandas 20.1 的一部分发布