假设有以下一些数据的位:
data = {'Object': ['objA', 'objB', 'objC', 'objD', 'objE'],
'Length': [10.1, 10.02, 7.4, 6.24, 5.99]}
df = pd.DataFrame(data)
df
这导致生成以下数据框:
Out[6]:
Length Object
0 10.10 objA
1 10.02 objB
2 7.40 objC
3 6.24 objD
4 5.99 objE
我想根据+-误差将'Length'列分组。这样做会给我以下分组结果。类似下面的伪代码:
tolerance = .25
grouped = df.groupby(df['Length'] +- tolerance)
这将导致类似下面的分组:
{(10.10+-.25): [0L, 1L],
(7.40+-.25): [2L],
(6.24+-.25): [3L, 4L]}
看了一些资料,有人建议使用pd.cut和预定义的bins,但是由于我的数据集实际大小和长度变化的可变性,预计算bin范围似乎是一种比较暴力的解决方法。有没有更加优雅/快速/pandas/numpy风格的解决方案呢?