Skip to content

Categorical.replace returns unexpected dimensions for length 1 Series #24971

@jseabold

Description

@jseabold
Contributor

The shapes and types of the first two are unexpected. Should they be? Just upgraded to pandas 0.24.0.

pd.Series(pd.Categorical('A', categories=['A', 'B'])).replace({'A': 1, 'B': 2})
# Out[30]:
# 0    [1]
# dtype: object

pd.Series(pd.Categorical(('A', ), categories=['A', 'B'])).replace({'A': 1, 'B': 2})
# Out[31]:
# 0    [1]
# dtype: object

pd.Series(pd.Categorical(('A', 'B'), categories=['A', 'B'])).replace({'A': 1, 'B': 2})
# Out[32]:
# 0    1
# 1    2
# dtype: int64

I expect the first to be an int64 dtype with a shape of (1,). They return a Series with shape (1, 1) and dtype object.

INSTALLED VERSIONS ------------------ commit: None python: 3.7.0.final.0 python-bits: 64 OS: Linux OS-release: 4.4.0-116-generic machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8

pandas: 0.24.0
pytest: 4.1.1
pip: 18.1
setuptools: 40.2.0
Cython: None
numpy: 1.15.4
scipy: 1.2.0
pyarrow: None
xarray: None
IPython: 7.2.0
sphinx: None
patsy: None
dateutil: 2.6.1
pytz: 2018.7
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 3.0.2
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml.etree: None
bs4: None
html5lib: None
sqlalchemy: 1.2.15
pymysql: None
psycopg2: 2.7.6.1 (dt dec pq3 ext lo64)
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None
gcsfs: None

Activity

jorisvandenbossche

jorisvandenbossche commented on Jan 28, 2019

@jorisvandenbossche
Member

@jseabold Thanks for the report!

What version were you using before upgrading? I see this buggy behaviour in 0.23.4 as well.

jseabold

jseabold commented on Jan 28, 2019

@jseabold
ContributorAuthor

What version were you using before upgrading?

I was using 0.23.4. I upgraded to see if another bug was fixed (it was), which revealed this one for me. Don't know anything about whether this code would have worked in an older version.

jorisvandenbossche

jorisvandenbossche commented on Jan 28, 2019

@jorisvandenbossche
Member

OK, just to know whether it was a regression or not. Of course it is still a clear bug, but if it was a regression compared to 0.23.4, we should have tried to give it priority.

added this to the Contributions Welcome milestone on Jan 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @jseabold@jorisvandenbossche

      Issue actions

        Categorical.replace returns unexpected dimensions for length 1 Series · Issue #24971 · pandas-dev/pandas