【发布时间】:2019-04-27 06:37:47
【问题描述】:
我创建了一个带有浮点类型索引的熊猫系列:
In [558]: fls=pd.Series({.1:'a',.2:'b',.3:'c',.4:'d'})
然后我想:让我们使用隐式索引:
In [559]: fls[1:3]
Out[559]: Series([], dtype: object)
为什么结果是一个空系列?
【问题讨论】:
-
你当前的索引是
Float64Index([0.1, 0.2, 0.3, 0.4], dtype='float64') -
它是一个 FloatIndex,所以为了避免像
fls[0.1:0.3]这样的索引产生歧义,它不做位置索引。您需要明确使用 iloc。 -
这是浮动索引的典型情况吗?因为如果索引是字符串或整数类型,则隐式索引有效。 ser=pd.Series({11:'a',12:'b',13:'c',14:'d'}) 也是如此,ser[1:3] 给出了 12 和 13 个条目。同样当 ser=pd.Series({'a':11,'b':12,'c':13,'d':14}) 时, ser[1:3] 给出 'b' 和 'c ' 条目。
-
如果索引是字符串,则没有歧义。您可以使用
ser['a':'c']或ser[1:3]很明显,在第一个中您按标签索引,而在第二个中按位置索引。如果索引是整数,它只执行位置索引(例如,您必须执行 ser.loc[11:13])。如果是浮点索引,为了方便访问范围(如fls[0:1]),它不会进行位置索引。
标签: python pandas indexing series