python - 使用 Matplotlib.dates.datestr2num 将 pandas DatetimeIndex 转换为 'float days format'

标签 python matplotlib pandas

一些 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.datetimempl.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/

相关文章:

python - 在 python 中利用 openstreetmap

python-3.x - 如何在绘制散点图后修改其颜色图

python - 基于分组功能创建新列

Python Pandas : column with ordered file names based on given sequence

python - 为什么我无法激活健身房表格

python - 可以在 Python 3.7 的内置正则表达式中使用 Unicode block (\p{InBasic_Latin}) 来匹配规范等效项

python - 如何在 Python 中检测 PDF 文档中的旋转页面?

Python alsaaudio 捕捉声音

python - Matplotlib - 值错误 : Illegal argument(s) to subplot

python - 如何使用 python 创建一个函数来对数据框进行子集化