我正在寻找与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/