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

2024-06-28 18:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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作为整数,而不需要这些多余的休息。

有人能帮我解决我的问题吗?我完全绝望了,如果能得到帮助,我将不胜感激。


Tags: 代码元素列表参数index格式整数dtype
2条回答

尝试.tolist()

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

这应该会回来

t = [2] 

一个“没有多余的剩余部分”的列表:

什么包裹给你的是Int64Index?这看起来有点模糊,但是numpy数组定义了__index__,因此一个由整数值组成的单元素数组将无缝地用作序列查找的索引。

不管怎样,假设t应该正好是一个值,并且它本身是一个序列类型,您可以执行以下操作:

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

后面的逗号将行从直接赋值改为iterable unpacking;它希望右侧生成一个iterable,正好有一个值,并且该值被解压成t。如果iterable有0或2+值,您将得到一个ValueError

相关问题 更多 >