2017-03-31 3 views
1

Ich versuche, Python (3.4) Code einzurichten, um eine Zeitreihe nach Datum zu sortieren.Python 3.4 Panda sortieren Marktdaten nach Datum

In Python-Shell, Schlüssel, den ich in den folgenden

>>>data = quandl.get("YAHOO/INDEX_GSPC", start_date="2017-01-01", end_date="2017-01-20") 
>>>print(data) 

Also, ich in den Daten laden kann. Aber wenn ich versuche Art zu verwenden, durch den Befehl

>>>data = data.sort_values(by='Date') 

erhalte ich die folgende Liste von Fehlermeldungen. Ich kann nicht scheinen, um die Syntax für die Sortierung zu verstehen von http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.sort_values.html

Experten da draußen ......., vielen Dank für den Rat.


Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\pandas\indexes\base.py", line 2134, in get_loc 
    return self._engine.get_loc(key) 
    File "pandas\index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas\index.c:4433) 
    File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:4279) 
    File "pandas\src\hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13742) 
    File "pandas\src\hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13696) 
KeyError: 'Date' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<pyshell#37>", line 1, in <module> 
    data = data.sort_values(by='Date') 
    File "C:\Python34\lib\site-packages\pandas\core\frame.py", line 3230, in sort_values 
    k = self.xs(by, axis=other_axis).values 
    File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1770, in xs 
    return self[key] 
    File "C:\Python34\lib\site-packages\pandas\core\frame.py", line 2059, in __getitem__ 
    return self._getitem_column(key) 
    File "C:\Python34\lib\site-packages\pandas\core\frame.py", line 2066, in _getitem_column 
    return self._get_item_cache(key) 
    File "C:\Python34\lib\site-packages\pandas\core\generic.py", line 1386, in _get_item_cache 
    values = self._data.get(item) 
    File "C:\Python34\lib\site-packages\pandas\core\internals.py", line 3543, in get 
    loc = self.items.get_loc(item) 
    File "C:\Python34\lib\site-packages\pandas\indexes\base.py", line 2136, in get_loc 
    return self._engine.get_loc(self._maybe_cast_indexer(key)) 
    File "pandas\index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas\index.c:4433) 
    File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:4279) 
    File "pandas\src\hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13742) 
    File "pandas\src\hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13696) 
KeyError: 'Date' 

Antwort

0

sicher, dass Sie bei dem Fehler zu suchen. Sie erhalten eine KeyError, was bedeutet, dass die Spalte Date nicht in Ihrem Datenrahmen vorhanden ist. Es ist so, als ob die Daten im Index gespeichert werden, was stattdessen die Methode sort_index erfordert. Der Name "Datum", den Sie in Ihrem Datenrahmen sehen, ist der Name des Index und keine Spalte.

data.sort_index() 
1

quandl.get lädt ein DataFrame mit dem Datum als Index.

Also, wenn Sie sortieren nach Index, du bist gut zu gehen:

data = data.sort_index() 
+1

Dank, es funktioniert jetzt. Ich benutze data = data.sort_index (Ascending = False) und ich kann es bekommen, um die Daten, nach Datum, mit den neuesten an der Spitze anzuzeigen. – Kiann