一些 Matplotlib 方法需要几天 'float days format' . datestr2num 是一个转换器函数,但它与相关的 pandas 对象有关:
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'
这提供了“ float 日格式”的可用时间列表:
dates = [mpl.dates.date2num(t) for t in df.index]
但是有没有更好的办法呢?
最佳答案
您可以使用 DatetimeIndex 的 to_pydatetime
方法(这会将其转换为 datetime.datetime
和 mpl.dates.date2num 的数组
将知道如何处理这些):
mpl.dates.date2num(df.index.to_pydatetime())
date2num
本身不处理 pandas DatetimeIndex 的原因是因为 matplotlib 尚不支持 numpy datetime64 dtype(这是数据存储在 DatetimeIndex 中的方式)。
关于python - 使用 Matplotlib.dates.datestr2num 将 pandas DatetimeIndex 转换为 'float days format',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993540/