2016-08-14 1 views
0

So datetr() soll eine Zahl in ein Datum umwandeln. Aber ich bekomme immer diese Name Fehlermeldung. Lade ich nicht das richtige Modul. Ich habe die Matplotlib-Dokumentation durchsucht, sehe aber kein bestimmtes Modul, das importiert werden muss.Warum erhalte ich den Fehlernachrichtennamen 'datetr' ist nicht definiert? Python 2.7

import matplotlib.pyplot as plt 
    from matplotlib.dates import DateFormatter, WeekdayLocator,\ 
     DayLocator, MONDAY 
    from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlc 
    import pandas as pd 
    import datetime 
    import pandas.io.data as web 
    from datetime import date 
    import matplotlib 

    date = 731613 

    print datestr(date) 
    #NameError: name 'datestr' is not defined 
+0

Was macht Sie denken, dies ist eine integrierte in Python-Funktion? Klingt für mich eher nach Matlab. In Python würden Sie etwas von [hier] (https://docs.python.org/2/library/datetime.html) oder einige Wrapper in pandas/numpy/matplotlib verwenden. – sascha

+0

In allen Beispielen http://www.mathworks.com/help/matlab/ref/datestr.html sehe ich nicht, wo sie ein bestimmtes Modul importieren. Ich habe bereits einige importiert, die ich verwenden möchte. –

+0

Warum beziehen Sie sich bei der Verwendung von Python auf Matlabs Dokumente? Sie wissen, dass dies zwei verschiedene Sprachen/Umgebungen sind? – sascha

Antwort

0

Ja, ich habe nicht die korrekte Funktion verwendet. Ich habe eine Suche nach dem Problem durchgeführt und bin auf die Lösung gestoßen, die ich oben versucht habe. Das korrekte Format ist unten.

from datetime import date 
dte = 731613 
print date.fromordinal(dte) 
#out put is >> 2004-02-02 
#   (Year, Month, day) 
1

Es sieht so aus, als ob Sie die Funktion mathplotlib.dates.num2date() möchten. Von dort können Sie in eine Zeichenfolge mit str() oder strftime() konvertieren:

>>> from matplotlib.dates import num2date 
>>> num2date(731613) 
datetime.datetime(2004, 2, 2, 0, 0, tzinfo=<matplotlib.dates._UTC object at 0x7f64861fa5d0>) 
>>> print(num2date(731613)) 
2004-02-02 00:00:00+00:00 
>>> str(num2date(731613)) 
'2004-02-02 00:00:00+00:00' 
Verwandte Themen