-
-
Notifications
You must be signed in to change notification settings - Fork 19k
Description
Code Sample, a copy-pastable example if possible
Construction without specifying a dtype results in object
dtype for Interval
and Period
:
In [2]: pd.Series(pd.Interval(0, 1), index=range(3))
Out[2]:
0 (0, 1]
1 (0, 1]
2 (0, 1]
dtype: object
In [3]: pd.Series(pd.Period("2019Q1", freq="Q"), index=range(3))
Out[3]:
0 2019Q1
1 2019Q1
2 2019Q1
dtype: object
This looks okay for a tz-aware Timestamp
:
In [4]: pd.Series(pd.Timestamp("2019", tz="US/Eastern"), index=range(3))
Out[4]:
0 2019-01-01 00:00:00-05:00
1 2019-01-01 00:00:00-05:00
2 2019-01-01 00:00:00-05:00
dtype: datetime64[ns, US/Eastern]
Specifying a dtype raises for Interval
, Period
and tz-aware Timestamp
:
In [5]: pd.Series(pd.Interval(0, 1), index=range(3), dtype=pd.IntervalDtype("int64"))
---------------------------------------------------------------------------
TypeError: IntervalArray(...) must be called with a collection of some kind, (0, 1] was passed
In [6]: pd.Series(pd.Period("2019Q1", freq="Q"), index=range(3), dtype=pd.PeriodDtype("Q"))
---------------------------------------------------------------------------
ValueError: Buffer has wrong number of dimensions (expected 1, got 0)
In [7]: pd.Series(pd.Timestamp("2019", tz="US/Eastern"), index=range(3), dtype=pd.DatetimeTZDtype(tz="US/Eastern"))
---------------------------------------------------------------------------
TypeError: 'Timestamp' object is not iterable
Both of the above patterns appear to be working fine when using scalars that correspond to non-extensions dtypes (e.g. numeric, tz-naive, timedelta).
Problem description
The Series
constructor is not correctly inferring the dtype from scalar Interval
/Period
objects when a dtype isn't specified, and raises for Interval
/Period
/tz-aware Timestamp
when a dtype is specified.
Expected Output
I'd expect the Series
to be constructed with the proper dtype.
Output of pd.show_versions()
INSTALLED VERSIONS
commit : 261c3a6
python : 3.7.3.final.0
python-bits : 64
OS : Linux
OS-release : 4.19.14-041914-generic
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : en_US.UTF-8
pandas : 0.25.0+332.g261c3a667
numpy : 1.16.4
pytz : 2019.1
dateutil : 2.8.0
pip : 19.1.1
setuptools : 41.0.1
Cython : 0.29.10
pytest : 4.6.2
hypothesis : 4.23.6
sphinx : 1.8.5
blosc : None
feather : None
xlsxwriter : 1.1.8
lxml.etree : 4.3.3
html5lib : 1.0.1
pymysql : None
psycopg2 : None
jinja2 : 2.10.1
IPython : 7.5.0
pandas_datareader: None
bs4 : 4.7.1
bottleneck : 1.2.1
fastparquet : 0.3.0
gcsfs : None
lxml.etree : 4.3.3
matplotlib : 3.1.0
numexpr : 2.6.9
odfpy : None
openpyxl : 2.6.2
pandas_gbq : None
pyarrow : 0.11.1
pytables : None
s3fs : 0.2.1
scipy : 1.2.1
sqlalchemy : 1.3.4
tables : 3.5.2
xarray : 0.12.1
xlrd : 1.2.0
xlwt : 1.3.0
xlsxwriter : 1.1.8