Niektóre metody Matplotlib wymagają dni w 'float days format'. datestr2num jest funkcją konwerter do tego, ale przewraca się z odpowiednimi obiektami pandy:Konwersja pand DatetimeIndex na format dni float z Matplotlib.dates.datestr2num
In [3]: type(df.index)
Out[3]: pandas.tseries.index.DatetimeIndex
In [4]: type(df.index[0])
Out[4]: pandas.tslib.Timestamp
In [5]: mpl.dates.date2num(df.index)
Out [5]: ...
AttributeError: 'numpy.datetime64' object has no attribute 'toordinal'
To zapewnia użyteczną listę razy w „formacie dni pływak”:
dates = [mpl.dates.date2num(t) for t in df.index]
Ale czy istnieje lepszy sposób?
Jaką funkcję chcesz użyć, która tego wymaga? A może możesz użyć 'mpl.dates.date2num (df.index.to_pydatetime())'? – joris
Niektóre funkcje kreślenia mpl.finance używają formatu dni float, chociaż wydaje się, że date2num nie jest w stanie poradzić sobie z pandami DatetimeIndices. Ale Twoja sugestia działa doskonale dzięki! (Jeśli umieścisz to w odpowiedzi, zaznaczę to :) – birone