Closed
Description
This only happens with the numpy object is on the left. It doesn't matter if it's an int or a float. This error does not get raised with DataFrames.
After more poking around, It looks like this actually comres from a change in numpy, between versions 1.8.2 and 1.9.0.
import pandas as pd
import numpy as np
s = pd.Series(np.arange(4))
arr = np.arange(4)
right = s < arr[0]
left = arr[0] > s
Running this yields
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
bug_lhs_numpy.py in <module>()
6
7 right = s < arr[0]
----> 8 left = arr[0] > s
C:\Anaconda\lib\site-packages\pandas-0.14.1_236_g989a51b-py2.7-win-amd64.egg\pandas\core\ops.py
ther)
555 return NotImplemented
556 elif isinstance(other, (pa.Array, pd.Series, pd.Index)):
--> 557 if len(self) != len(other):
558 raise ValueError('Lengths must match to compare')
559 return self._constructor(na_op(self.values, np.asarray(other)),
TypeError: len() of unsized object
In [2]: type(arr[0])
Out[2]: numpy.int32