-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
.astype('object') misbehaves on Categorical containing Timestamp #18024
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@toobaz : I'm not sure I fully follow you explanation of the problem's source, but your report seems reasonable to me. PR is welcome! |
Actually my explanation is not even a real explanation... I just dug down the code a couple of steps looking for the origin of the problem (and stopped at the border with |
I agree it is strange behaviour, but I am not fully sure we can do something about it at the source. Converting a Categorical to array gives datetime64
and converting that to object gives the underlying integer as object (numpy behaviour):
The difference with the Timestamp example is that that already is object dtype, so the You get the same result when astyping datetime64 data:
But I suppose we can add some workarounds to prevent this from happening on the pandas side (like is done for the Series(datetime64 data).astype(object) case) |
I'm not sure what we can do to prevent unwanted conversions, but what we should at least (be able to) fix is the fact that |
Yes, but the 'anything', although being
|
take is meant to emulate
so we want these to be identical. |
This issue is not about take, rather about not handling
work correctly. |
This looks to work on master. I suppose we could use a test for this
|
@phofl i think one of your current PRs might solve this? |
Yep, added a test Edit: The astype call did not work before |
Code Sample, a copy-pastable example if possible
Problem description
The two calls should produce the same output. The problem comes from:
... which in turn comes from
Expected Output
Out[2]
Output of
pd.show_versions()
INSTALLED VERSIONS
commit: 4329a8d03555568b8593364caad680c24f91c9ad
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.22.0.dev0+18.g4329a8d03
pytest: 3.0.6
pip: 9.0.1
setuptools: None
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
pyarrow: None
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.0
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
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.2.1
The text was updated successfully, but these errors were encountered: