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