冉冉说
您可以使用pd.cut来b根据 对值进行分类ranges,并删除那些duplicated:ranges = np.array([0, 2, 4, 6, 8, 10])df[~(pd.cut(df.b, ranges, include_lowest=True, right=False)).duplicated()] a b0 1 02 9 53 3 94 5 6在哪里:pd.cut(df.b, ranges, include_lowest=True, right=False)0 [0, 2)1 [0, 2)2 [4, 6)3 [8, 10)4 [6, 8)Name: b, dtype: category更新如果要使用允许重复值的特定截断值,可以按返回的区间分组,pd.cut并n使用 [ head] 选择重复的第一个值,以选择n属于同一区间的第一行。以下数据帧与您的数据帧相同,但有额外的一行,因此功能更清晰:print(df) a b0 1 01 7 02 7 03 9 54 3 95 5 6cuttoff = 2g = pd.cut(df.b, ranges, include_lowest=True, right=False)df.groupby(g).head(cuttoff) a b0 1 01 7 03 9 54 3 95 5 6