Skip to content

Uninteded cast from int to float in pd.crosstab with different indexes #17005

Closed
@toobaz

Description

@toobaz

Code Sample, a copy-pastable example if possible

In [2]: pd.crosstab(pd.Series([1,2,3]), pd.Series([1,2]))
Out[2]: 
col_0  1.0  2.0
row_0          
1        1    0
2        0    1

Problem description

The shorter series gets casted to float before the computation, which one would not expect, given that index elements with at least one missing value are discarded in the computation..

Expected Output

The same as

In [3]: pd.crosstab(pd.Series([1,2]), pd.Series([1,2]))
Out[3]: 
col_0  1  2
row_0      
1      1  0
2      0  1

Output of pd.show_versions()

INSTALLED VERSIONS ------------------ commit: ea487fc python: 3.5.3.final.0 python-bits: 64 OS: Linux OS-release: 4.9.0-3-amd64 machine: x86_64 processor: byteorder: little LC_ALL: None LANG: it_IT.UTF-8 LOCALE: it_IT.UTF-8

pandas: 0.21.0.dev+258.gea487fc9b.dirty
pytest: 3.0.6
pip: 9.0.1
setuptools: None
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
xarray: None
IPython: 5.1.0.dev
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.3.0
numexpr: 2.6.1
feather: 0.3.1
matplotlib: 2.0.2
openpyxl: None
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.6
lxml: None
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.0.15
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: 0.2.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugDtype ConversionsUnexpected or buggy dtype conversionsReshapingConcat, Merge/Join, Stack/Unstack, Explode

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions