将类型Int64Index转换为Python中的整数索引

时间:2015-12-22 17:08:04

标签: python python-3.x integer type-conversion

我对python很新,但是,我必须完成一些任务,现在我正在努力解决问题。当表A中的某个其他参数对应于列表B中的值时,我尝试获取表A中元素的索引。表A还包含一列"index",其中所有元素都从0开始计算直至最后。此外,tableA.parameter1和listB中的值只能重合一次,多次匹配是不可能的。因此,为了得到必要的索引,我使用了一行

t=tableA.index[tableA.parameter1==listB[numberObservation]]

但是,我得到的结果是:

t Int64Index([2], dtype='int64')

如果我以这种格式Int64Index使用变量t,它不适合我必须使用的其他代码。实际上,我只需要2作为整数,没有所有这些多余的休息。

有人可以帮助我规避我的问题吗?我完全绝望,对任何帮助都会感激不尽。

2 个答案:

答案 0 :(得分:1)

尝试.tolist()

t=tableA.index[tableA.parameter1==listB[numberObservation]].tolist()

这应该返回

t = [2] 

列表“没有所有多余的休息”:)

答案 1 :(得分:0)

给你Int64Index的包裹是什么?这看起来很模糊numpy - ish,但是numpy数组定义__index__所以整数值的单个元素数组将无缝地作为序列查找的索引运行。

无论如何,假设t应该只是一个值,并且它本身就是一个序列类型,你可以这样做:

t, = tableA.index[tableA.parameter1==listB[numberObservation]]

该尾随逗号将该行从直接赋值更改为可迭代解包;它希望右侧产生一个只有一个值的迭代,并将一个值解压缩到t。如果可迭代的值为0或2+,则您将获得ValueError