给出以下一些数据:
data = {'Object': ['objA', 'objB', 'objC', 'objD', 'objE'],
'Length': [10.1, 10.02, 7.4, 6.24, 5.99]}
df = pd.DataFrame(data)
df
这将导致以下数据帧:
^{pr2}$我想根据+-公差将“长度”列分组。这样做会给我以下几组。类似于下面的psuedo代码:
tolerance = .25
grouped = df.groupby(df['Length'] +- tolerance)
这将产生类似于下面的分组:
{(10.10+-.25): [0L, 1L],
(7.40+-.25): [2L],
(6.24+-.25): [3L, 4L]}
环顾四周,人们建议使用pd.切割然而,鉴于数据集的真实大小和长度的可变性,预先计算仓位范围似乎有点像是一种强力解决方案。有没有人有更优雅/快速/熊猫/纽比式的解决方案?在
我建议在PyPI上使用^{} 包,而不是pandas/numpy式的解决方案。在
其思想是将每个长度+/-公差间隔添加到间隔树中,使间隔映射到相关对象。然后,迭代长度并查询间隔树。这将为您提供包含查询长度的公差间隔的所有对象。在
^{pr2}$result
字典如下:它不是完全按照您指定的格式,但它应该足够简单,可以对您需要的格式进行任何更改。在
相关问题 更多 >
编程相关推荐