一尘不染

Pandas系列无法获取索引

python

不知道这里出了什么问题…我想要的只是本系列中的第一个也是唯一的元素

>>> a
1    0-5fffd6b57084003b1b582ff1e56855a6!1-AB8769635...
Name: id, dtype: object

>>> len (a)
1

>>> type(a)
<class 'pandas.core.series.Series'>

>>> a[0]

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    a[0]
  File "C:\Python27\lib\site-packages\pandas\core\series.py", line 601, in __getitem__
    result = self.index.get_value(self, key)
  File "C:\Python27\lib\site-packages\pandas\core\indexes\base.py", line 2477, in get_value
    tz=getattr(series.dtype, 'tz', None))
  File "pandas\_libs\index.pyx", line 98, in pandas._libs.index.IndexEngine.get_value (pandas\_libs\index.c:4404)
  File "pandas\_libs\index.pyx", line 106, in pandas._libs.index.IndexEngine.get_value (pandas\_libs\index.c:4087)
  File "pandas\_libs\index.pyx", line 154, in pandas._libs.index.IndexEngine.get_loc (pandas\_libs\index.c:5126)
  File "pandas\_libs\hashtable_class_helper.pxi", line 759, in pandas._libs.hashtable.Int64HashTable.get_item (pandas\_libs\hashtable.c:14031)
  File "pandas\_libs\hashtable_class_helper.pxi", line 765, in pandas._libs.hashtable.Int64HashTable.get_item (pandas\_libs\hashtable.c:13975)
KeyError: 0L

为什么这样不起作用?以及如何获得第一个元素?


阅读 1415

收藏
2021-01-20

共1个答案

一尘不染

当索引为整数时,您将无法使用位置索引器,因为选择将是模棱两可的(应基于标签还是位置返回?)。您需要明确使用a.iloc[0] 或传递标签a[1]

由于索引类型是对象,因此可以进行以下操作:

a = pd.Series([1, 2, 3], index=['a', 'b', 'c'])

a
Out: 
a    1
b    2
c    3
dtype: int64

a[0]
Out: 1

但是对于整数索引,情况有所不同:

a = pd.Series([1, 2, 3], index=[2, 3, 4])

a[2]  # returns the first entry - label based
Out: 1

a[1]  # raises a KeyError
KeyError: 1
2021-01-20