变量“ lvl”是IntervalIndex类型,如下所示。
lvl = IntervalIndex([(1.418, 1.69], (1.69, 6.696], (6.696, 7.217], (7.217, 7.845], (7.845, 10.11] ... (17.648, 18.199], (18.199, 19.315], (19.315, 20.16], (20.16, 22.471], (22.471, 25.009]]
closed='right',
dtype='interval[float64]')
Run Code Online (Sandbox Code Playgroud)
现在,我尝试添加一些像这样的索引值:
for each in val_list:
for k in range(len(lvl)):
lower_val = float(lvl[k][1:-1].split(',')[0])
upper_val = float(lvl[k][1:-1].split(',')[-1])
if each >=lower_val and each <= upper_val:
some_var_index.append(k)
Run Code Online (Sandbox Code Playgroud)
但是,错误引起了我...:
{TypeError}'pandas._libs.interval.Interval' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
我该怎么办?谢谢
小智 5
对象不可下标意味着它的行为不像普通列表,但是您在这里做了两次:
lower_val = float(lvl[k][1:-1].split(',')[0])
upper_val = float(lvl[k][1:-1].split(',')[-1])
Run Code Online (Sandbox Code Playgroud)
第二个方括号[1:-1]。而是这两行使用这一行:
lower_val, upper_val = lvl[k].left, lvl[k].right
Run Code Online (Sandbox Code Playgroud)
你应该很好