You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In [2]: df1=pd.DataFrame({'id':[1.,2.], 'c1':[10,20]})
In [3]: df2=pd.DataFrame({'id':[2], 'c2':[200]})
In [4]: df=df1.merge(df2, on='id', how='left')
In [5]: df['id'].dtypeOut[5]: dtype('O')
Problem description
When I merge 2 DataFrames on a column (id) which is of type float in one of the DataFrames and of type int in the other DataFrame, the resulting DataFrame column is of type Object. Why? I guess the resulting DataFrame should keep the float type.
Expected Output
In [5]: df['id'].dtypeOut[5]: dtype('float64')
Indeed, this was the behavior for pandas 0.19.2.
Output of pd.show_versions()
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.1.final.0
python-bits: 64
OS: Linux
OS-release: 2.6.32-431.29.2.el6.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: C
LOCALE: None.None
This is as expected. We don't cast keys on divergent types for the keys. I suppose you could try to cast this upfront and make them both floats. So if you wanted to do a PR would be ok.
Code Sample, a copy-pastable example if possible
Problem description
When I merge 2 DataFrames on a column (
id
) which is of type float in one of the DataFrames and of type int in the other DataFrame, the resulting DataFrame column is of type Object. Why? I guess the resulting DataFrame should keep the float type.Expected Output
Indeed, this was the behavior for pandas 0.19.2.
Output of
pd.show_versions()
pandas: 0.20.2
pytest: 3.0.7
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.25.2
numpy: 1.13.1
scipy: 0.19.1
xarray: None
IPython: 6.1.0
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.2
feather: None
matplotlib: 2.0.2
openpyxl: 2.4.7
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.3
bs4: 4.6.0
html5lib: 0.999
sqlalchemy: 1.1.9
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None
The text was updated successfully, but these errors were encountered: