Skip to content

BUG/API: Indexes on empty frames/series should be RangeIndex, are Index[object] #49572

Closed
@topper-123

Description

@topper-123

Pandas version checks

  • I have checked that this issue has not already been reported.

  • I have confirmed this bug exists on the latest version of pandas.

  • I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

>>> import pandas as pd
>>> pd.DataFrame([1]).index
RangeIndex(start=0, stop=1, step=1)  # ok
>>> pd.DataFrame().index
Index([], dtype='object')  # not ok
>>> pd.Series([1]).index
RangeIndex(start=0, stop=1, step=1)  # ok
>>> pd.Series([]).index
RangeIndex(start=0, stop=0, step=1)  # ok
>>> pd.Series().index
Index([], dtype='object')  # not ok

Issue Description

When users don't specify indexes, pandas infers the index type for them. It infers to be a RangeIndex, except when the frame/series is emtpy, then the index is inferred to be a Index[object].

The type of index should be consistently RangeIndex, when users don't declare the index. Same for columns.

Expected Behavior

Empty frames/series should have index/columns like RangeIndex(0) instead an empty object index.

Found working on #49560.

Installed Versions

NSTALLED VERSIONS

commit : 527be72
python : 3.9.7.final.0
python-bits : 64
OS : Darwin
OS-release : 21.6.0
Version : Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:35 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T8101
machine : arm64
processor : arm
byteorder : little
LC_ALL : None
LANG : None
LOCALE : None.UTF-8

pandas : 2.0.0.dev0+593.g527be722a2
numpy : 1.23.3
pytz : 2022.1
dateutil : 2.8.2
setuptools : 65.5.0
pip : 22.2.2
Cython : 0.29.32
pytest : 7.1.2
hypothesis : 6.37.0
sphinx : 5.0.2
blosc : 1.10.6
feather : None
xlsxwriter : None
lxml.etree : 4.9.1
html5lib : None
pymysql : 1.0.2
psycopg2 : 2.9.3
jinja2 : 3.1.2
IPython : 7.29.0
pandas_datareader: None
bs4 : 4.11.1
bottleneck : None
brotli :
fastparquet : 0.8.3
fsspec : 2022.10.0
gcsfs : None
matplotlib : 3.5.2
numba : 0.56.4
numexpr : 2.8.3
odfpy : None
openpyxl : None
pandas_gbq : None
pyarrow : 10.0.0
pyreadstat : None
pyxlsb : None
s3fs : 2022.10.0
scipy : 1.9.1
snappy : None
sqlalchemy : None
tables : 3.7.0
tabulate : 0.9.0
xarray : None
xlrd : None
zstandard : 0.18.0
tzdata : None

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugConstructorsSeries/DataFrame/Index/pd.array ConstructorsDataFrameDataFrame data structureIndexRelated to the Index class or subclassesNeeds TriageIssue that has not been reviewed by a pandas team memberSeriesSeries data structure

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions