有没有办法pd。削减标量?

时间:2019-05-28 12:36:20

标签: python pandas

我正在寻找与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中,是否有更好的方法从标量转换为区间?

1 个答案:

答案 0 :(得分:1)

如果只想获取关联的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')