2017-10-11 135 views
2

我有一個叫做moving_average的python熊貓系列。訪問這個python熊貓系列的最後一個元素

moving_average = df['score'].rolling(window=period).mean() 

我想檢索系列moving_average的最後一個元素。這就是我所做的。

moving_average = df['score'].rolling(window=period).mean()[-1] 

不幸的是,我得到了以下錯誤。

File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 601, in __getitem__ 
    result = self.index.get_value(self, key) 
    File "C:\ProgramData\Anaconda3\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 
    File "pandas\_libs\index.pyx", line 106, in pandas._libs.index.IndexEngine.get_value 
    File "pandas\_libs\index.pyx", line 154, in pandas._libs.index.IndexEngine.get_loc 
    File "pandas\_libs\hashtable_class_helper.pxi", line 759, in pandas._libs.hashtable.Int64HashTable.get_item 
    File "pandas\_libs\hashtable_class_helper.pxi", line 765, in pandas._libs.hashtable.Int64HashTable.get_item 
KeyError: -1 

我使用python V3.6

回答

4

使用.iloc,否則熊貓正在尋找標記爲-1索引鍵不存在,因此在KeyError異常。

moving_average = df['score'].rolling(window=period).mean().iloc[-1] 
+0

我看到了兩個相同的答案哈哈:-) – Wen

2

嘗試:

moving_average = df['score'].rolling(window=period).mean().iloc[-1]

1

您可以使用:

moving_average = df['score'].rolling(window = period).mean().iloc[-1] 
3

當您使用head()不要忘記tail()

df['score'].rolling(window=period).mean().tail(1) 
+0

:)你必須有所不同。 +1 –

+0

@ScottBoston已經投票給你了:-) – Wen

+0

@Wen,謝謝你的回答。使用尾巴不僅僅是一個數字。它還返回名稱和dtype。超過我在我的情況下所需要的。但是,知道它肯定是有用的。謝謝。 – user781486

相關問題