【发布时间】:2018-03-04 00:47:09
【问题描述】:
在 0.20 中有一个名为 Intervalindex 的有趣 API,可让您创建区间索引。
给定一些示例数据:
data = [(893.1516130000001, 903.9187099999999),
(882.384516, 893.1516130000001),
(817.781935, 828.549032)]
你可以这样创建索引:
idx = pd.IntervalIndex.from_tuples(data)
print(idx)
IntervalIndex([(893.151613, 903.91871], (882.384516, 893.151613], (817.781935, 828.549032]]
closed='right',
dtype='interval[float64]')
Intervals 的一个有趣特性是您可以使用in 执行间隔检查:
print(y[-1])
Interval(817.78193499999998, 828.54903200000001, closed='right')
print(820 in y[-1])
True
print(1000 in y[-1])
False
我想知道如何将此操作应用于整个索引。例如,给定某个数字900,我如何检索适合该数字的间隔的布尔掩码?
我能想到:
m = [900 in y for y in idx]
print(m)
[True, False, False]
有没有更好的方法来做到这一点?
【问题讨论】:
-
我不知道,你的方式有问题吗?
-
@Zero 这似乎是一个有用的功能,所以我认为会有类似的东西。列表理解的唯一问题是循环;-/
-
@Bharathshetty 我是菜鸟。我不知道什么是好什么是坏!
-
@cᴏʟᴅsᴘᴇᴇᴅ 为什么 get_loc 不适用于日期时间
-
@Bharath 它应该......我对这个 API 的经验不够,无法告诉你原因:(