Python Pandas - 系列索引表示法

时间:2015-03-18 17:59:02

标签: python pandas

这可能是一个简单的问题,但在熊猫中没有得到解释 初学者教程。

创建系列时:

import pandas as pd
x = pd.Series(range(1,11))

你得到的输出显示索引从0到9。 x[0] = 1x[9] = 10

x.index - > Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype='int64')

那么为什么当你输入x[0:9]时,它会遗漏掉最后一个值10.任何人都可以 解释索引表示法的不一致性?

我知道其他索引方法,如x.iloc等,但还没有看到 将它们捆绑在一起的可靠解释。

>>> x[0:9]
0    1
1    2
2    3
3    4
4    5
5    6
6    7
7    8
8    9
dtype: int64

2 个答案:

答案 0 :(得分:2)

Python索引包含第一个数字,不包括最后一个数字。这里没有矛盾,它只是python索引的工作原理。

x [0:9]表示0-8,包括x [0:9] = x [0,1,2,3,4,5,6,7,8],因此它输出值1- 9包括1,2,3,4,5,6,7,8,9。

我猜唯一奇怪的部分是使用单个值的地方。 x [9]输出10,但您应该将其视为包含第一个索引值。

尝试使用字母而不是数字重新填充您的系列,这似乎更不容易混淆,并且对其余的python索引也有意义:

input and output from letter based pandas series and indexing

答案 1 :(得分:1)

简而言之,在系列中选择一个值与选择多个值(即切片)的工作方式不同。切片会自动忽略最后一个索引,而选择一个值根本就不能这样做(唯一的索引是第一个和最后一个索引,如果你忽略它,你就没有索引可以使用)。