BUG/API: Indexes on empty frames/series should be RangeIndex, are Index[object] · Issue #49572 · pandas-dev/pandas (original) (raw)
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