首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Series.index对Series.index.values

Series.index对Series.index.values
EN

Stack Overflow用户
提问于 2013-12-30 12:12:04
回答 1查看 3.2K关注 0票数 1

熊猫series有两个密切相关的属性:Series.indexSeries.index.values

这两种中的第一种是返回目前某些熊猫指数类型的指数。它是可变的,可以用来更改系列的索引(这是一件好事)。

第二个返回一个numpy.ndarray。但是,它是不可变的,并且不管随后对索引的更改如何,它都保留原来的索引值。

我的问题是:不可变的Series.index.values的目的是什么?

编辑:

嗯。忽略这个问题--我不能重复我昨晚看到的s.index.values令人困惑的行为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-30 12:46:35

几乎所有.values属性(系列属性、DataFrame属性、面板属性、索引对象属性)都返回底层的numpy数据。索引本身是围绕这些数据进行的复杂包装,提供了其他方便的功能,例如(从this answer获取的示例this answer):

代码语言:javascript
复制
>>> s = df['A']
>>> s.index
MultiIndex
[(u'one', 1), (u'one', 2), (u'one', 3), (u'two', 1), (u'two', 2), (u'two', 3)]
>>> s.index.values
array([('one', 1L), ('one', 2L), ('one', 3L), ('two', 1L), ('two', 2L),
       ('two', 3L)], dtype=object)
>>> s.index.get_indexer([('one',1), ('two', 2)])
array([0, 4])

例如,当您用一些可迭代的方法更新索引时,会在遮罩下创建一个新的index对象:

代码语言:javascript
复制
>>> s.index = np.arange(6)
>>> s.index
Int64Index([0, 1, 2, 3, 4, 5], dtype=int64)
>>> s.index.get_indexer([0,4])
array([0, 4])
>>> s.index.values
array([0, 1, 2, 3, 4, 5], dtype=int64)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20839325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档