dataframe数据取最后一个数报错

当尝试通过索引[-1]从DataFrame获取最后一个数据时遇到错误。可以将DataFrame转换为numpy.ndarray使用values属性,或者利用切片操作df[-1:]获取最后一个元素,但返回类型可能是Series。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dataframe数据可以用[i]取第i位置的数据,但是,当想去倒数第一个数据时,即当i=-1时会报错

使用df.values可以把dataframe类型转换为numpy.ndarray数据类型,然后去最后一个数据。

也可以使用df[-1:]进行取最后一个数,但是数据类型时pandas的series。

具体结果如下:

print(df['close'])
print(df['close'][0])
print(df['close'][-1:])
print(type(df['close'][-1:]))
print(df['close'].values)
print(type(df['close'].values))
print(df['close'].values[-1])
# print(df['close'][-1])

运行结果如下
0         1.18310
1         1.18150
2         1.18180
3         1.18100
4         1.18220
           ...   
144524    1.08207
144525    1.08187
144526    1.08054
144527    1.07754
144528    1.07748
Name: close, Length: 144529, dtype: float64

1.1831

144528    1.07748
Name: close, dtype: float64
<class 'pandas.core.series.Series'>

[1.1831  1.1815  1.1818  ... 1.08054 1.07754 1.07748]

<class 'numpy.ndarray'>

1.07748
print(df['close'][-1])

输出结果为:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File D:\Program Files (x86)\Anaconda3\envs\pytorch\lib\site-packages\pandas\core\indexes\range.py:385, in RangeIndex.get_loc(self, key, method, tolerance)
    384 try:
--> 385     return self._range.index(new_key)
    386 except ValueError as err:

ValueError: -1 is not in range

The above exception was the direct cause of the following exception:

KeyError                                  Traceback (most recent call last)
Input In [85], in <cell line: 1>()
----> 1 print(df['close'][-1])

File D:\Program Files (x86)\Anaconda3\envs\pytorch\lib\site-packages\pandas\core\series.py:958, in Series.__getitem__(self, key)
    955     return self._values[key]
    957 elif key_is_scalar:
--> 958     return self._get_value(key)
    960 if is_hashable(key):
    961     # Otherwise index.get_value will raise InvalidIndexError
    962     try:
    963         # For labels that don't resolve as scalars like tuples and frozensets

File D:\Program Files (x86)\Anaconda3\envs\pytorch\lib\site-packages\pandas\core\series.py:1069, in Series._get_value(self, label, takeable)
   1066     return self._values[label]
   1068 # Similar to Index.get_value, but we do not fall back to positional
-> 1069 loc = self.index.get_loc(label)
   1070 return self.index._get_values_for_loc(self, loc, label)

File D:\Program Files (x86)\Anaconda3\envs\pytorch\lib\site-packages\pandas\core\indexes\range.py:387, in RangeIndex.get_loc(self, key, method, tolerance)
    385         return self._range.index(new_key)
    386     except ValueError as err:
--> 387         raise KeyError(key) from err
    388 self._check_indexing_error(key)
    389 raise KeyError(key)

KeyError: -1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值