为什么 pd.Interval 的列表不能被 DataFrame 自动识别?

Why list of pd.Interval doesn't recognized by DataFrame automatically?

intervals = [pd.Interval(0, 0.1), pd.Interval(1, 5)]
pd.DataFrame({'d':intervals}).dtypes

将 dtype 生成为 Object 而不是 Interval:

>>> d    object
>>> dtype: object

但同时可以即时识别 DateTimes 列表:

datetimes = [pd.Timestamp('2013-01-02'), pd.Timestamp('2016-10-20')]
pd.DataFrame({'d':datetimes}).dtypes
>>> d    datetime64[ns]
>>> dtype: object

intervals 的情况是否有点像 strings 的列表 - DataFrame 中列的默认类型也将是 object,因为 DataFrame 不 'know' 如果我们想将此列视为对象(用于转储到磁盘,..),或字符串(用于连接,..)或什至作为类别类型的元素?如果是这样 - intervals 可能有哪些不同的用例?如果不是,这里是什么情况?

这是 pandas 中的错误:https://github.com/pandas-dev/pandas/issues/23563

目前,最干净的解决方法是用 pd.array:

包装列表
In [1]: import pandas as pd; pd.__version__
Out[1]: '0.24.2'

In [2]: intervals = [pd.Interval(0, 0.1), pd.Interval(1, 5)]

In [3]: pd.DataFrame({'d': pd.array(intervals)}).dtypes
Out[3]:
d    interval[float64]
dtype: object