这可能是一个简单的问题,但在熊猫中没有得到解释 初学者教程。
创建系列时:
import pandas as pd
x = pd.Series(range(1,11))
你得到的输出显示索引从0到9。
x[0] = 1
,x[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
答案 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索引也有意义:
答案 1 :(得分:1)
简而言之,在系列中选择一个值与选择多个值(即切片)的工作方式不同。切片会自动忽略最后一个索引,而选择一个值根本就不能这样做(唯一的索引是第一个和最后一个索引,如果你忽略它,你就没有索引可以使用)。