Uninteded cast from int to float in pd.crosstab with different indexes · Issue #17005 · pandas-dev/pandas (original) (raw)

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: ea487fcpython: 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