df.Change[-1] 产生错误。

df.Change[-1] producing errors.

我正在尝试从我的数据帧 df 中切出系列 Change 的最后一个值 df

数据框看起来像这样

            Change 
0           1.000000
1           0.917727
2           1.000000
3           0.914773
4           0.933182
5           0.936136
6           0.957500
14466949    1.998392
14466950    2.002413
14466951    1.998392
14466952    1.974266
14466953    1.966224

当我输入以下代码时

    df.Change[0]
    df.Change[100]
    df.Change[100000]

我得到一个输出,但是当我输入时

df.Change[-1]

我收到以下错误

Traceback (most recent call last):
  File "<pyshell#188>", line 1, in <module>
     df.Change[-1]
  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\indexes\base.py", line 2139, in get_value
    tz=getattr(series.dtype, 'tz', None))
  File "pandas/index.pyx", line 105, in pandas.index.IndexEngine.get_value (pandas\index.c:3338)
  File "pandas/index.pyx", line 113, in pandas.index.IndexEngine.get_value (pandas\index.c:3041)
  File "pandas/index.pyx", line 151, in pandas.index.IndexEngine.get_loc (pandas\index.c:3898)
KeyError: -1

几乎所有我用于切片的负数都会导致错误,我不确定为什么。

谢谢。

有几种方法可以做到这一点。发生的事情是 pandas 与 df.Change[100] 没有问题,因为 100 在其索引中。 -1 不是。您碰巧拥有与使用序数位置相同的索引。要明确获取序数位置,请使用 iloc.

df.Change.iloc[-1]

df.Change.values[-1]