我正在寻找与pd.cut相同的东西,但是要有一个标量?

我想这样做:

bins = [0, 5, 10, 15, 20, 25, 30, 40, 50, 100, 150]
pd.cut(43, bins=bins)


但是当前会引发值错误:

ValueError: Input array must be 1 dimensional


可以通过添加[]进行修复:

pd.cut([43], bins=bins)


哪个输出:

[(40, 50]]
Categories (10, interval[int64]): [(0, 5] < (5, 10] < (10, 15] < (15, 20] ... (30, 40] < (40, 50] < (50, 100] < (100, 150]]


但是,只是想知道,在一般情况下还是在Pandas中,是否有更好的方法从标量转换为区间?

最佳答案

如果只想获取关联的Interval对象,则可以构造一个IntervalIndex并使用get_loc进行过滤:

In [2]: bins = [0, 5, 10, 15, 20, 25, 30, 40, 50, 100, 150]

In [3]: ii = pd.IntervalIndex.from_breaks(bins)

In [4]: ii[ii.get_loc(43)]
Out[4]: Interval(40, 50, closed='right')

关于python - 有没有办法pd。削减标量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56342458/

10-12 16:57
查看更多