We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Comparing a dataframes where some series have a datatype and others a datetime type, yields the following error:
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-6-991045b5f90e> in <module>() 6 h = pd.DataFrame([['a', 'b'], ['c', 'd']], ['row1', 'row2']) 7 ----> 8 x != h /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/core/ops.pyc in f(self, other) 1175 def f(self, other): 1176 if isinstance(other, pd.DataFrame): # Another DataFrame -> 1177 return self._compare_frame(other, func, str_rep) 1178 elif isinstance(other, ABCSeries): 1179 return self._combine_series_infer(other, func) /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/core/frame.pyc in _compare_frame(self, other, func, str_rep) 3584 raise ValueError('Can only compare identically-labeled ' 3585 'DataFrame objects') -> 3586 return self._compare_frame_evaluate(other, func, str_rep) 3587 3588 def _flex_compare_frame(self, other, func, str_rep, level): /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/core/frame.pyc in _compare_frame_evaluate(self, other, func, str_rep) 3564 return dict([(col, func(a[col], b[col])) for col in a.columns]) 3565 -> 3566 new_data = expressions.evaluate(_compare, str_rep, self, other) 3567 return self._constructor(data=new_data, index=self.index, 3568 columns=self.columns, copy=False) /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/computation/expressions.pyc in evaluate(op, op_str, a, b, raise_on_error, use_numexpr, **eval_kwargs) 207 if use_numexpr: 208 return _evaluate(op, op_str, a, b, raise_on_error=raise_on_error, --> 209 **eval_kwargs) 210 return _evaluate_standard(op, op_str, a, b, raise_on_error=raise_on_error) 211 /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/computation/expressions.pyc in _evaluate_standard(op, op_str, a, b, raise_on_error, **eval_kwargs) 60 if _TEST_MODE: 61 _store_test_result(False) ---> 62 return op(a, b) 63 64 /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/core/frame.pyc in _compare(a, b) 3562 3563 def _compare(a, b): -> 3564 return dict([(col, func(a[col], b[col])) for col in a.columns]) 3565 3566 new_data = expressions.evaluate(_compare, str_rep, self, other) /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/core/ops.pyc in wrapper(self, other, axis) 734 if len(self) != len(other): 735 raise ValueError('Series lengths must match to compare') --> 736 return self._constructor(na_op(self.values, other.values), 737 index=self.index, name=name) 738 elif isinstance(other, pd.DataFrame): # pragma: no cover /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/pandas/core/ops.pyc in na_op(x, y) 707 y = _index.convert_scalar(x, _values_from_object(y)) 708 else: --> 709 y = y.view('i8') 710 711 mask = isnull(x) /Users/yoshikivazquezbaeza/.virtualenvs/emperor/lib/python2.7/site-packages/numpy/core/_internal.pyc in _view_is_safe(oldtype, newtype) 365 366 if newtype.hasobject or oldtype.hasobject: --> 367 raise TypeError("Cannot change data-type for object array.") 368 return 369 TypeError: Cannot change data-type for object array.
I would expect the result to simply be True.
True
import pandas as pd x = pd.DataFrame([['08/01/89', 1], ['08/01/89', 2]], ['row1', 'row2']) x[0] = pd.to_datetime(x[0]) h = pd.DataFrame([['a', 'b'], ['c', 'd']], ['row1', 'row2']) x != h
I would expect the output to be True.
pd.show_versions()
INSTALLED VERSIONS ------------------ commit: None python: 2.7.9.final.0 python-bits: 64 OS: Darwin OS-release: 15.4.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 pandas: 0.18.1 nose: 1.3.7 pip: 1.5.4 setuptools: 21.0.0 Cython: None numpy: 1.11.0 scipy: 0.17.0 statsmodels: None xarray: None IPython: 4.2.0 sphinx: 1.4 patsy: None dateutil: 2.5.3 pytz: 2016.4 blosc: None bottleneck: None tables: None numexpr: None matplotlib: 1.5.1 openpyxl: None xlrd: None xlwt: None xlsxwriter: None lxml: None bs4: None html5lib: None httplib2: None apiclient: None sqlalchemy: None pymysql: None psycopg2: None jinja2: 2.8 boto: None pandas_datareader: None
The text was updated successfully, but these errors were encountered:
you can do this if you are trying for a whole frame comparison
In [8]: x.equals(h) Out[8]: False
we have a number of issues, see here: #13129
so need someone to work thru some of these.
Sorry, something went wrong.
@jreback, thanks, this is a good workaround!!
Successfully merging a pull request may close this issue.
Comparing a dataframes where some series have a datatype and others a datetime type, yields the following error:
I would expect the result to simply be
True
.Code Sample
Expected Output
I would expect the output to be
True
.output of
pd.show_versions()
The text was updated successfully, but these errors were encountered: