ValueError: 'object too deep for desired array'
<p>I have a ValueError: 'object too deep for desired array' in a Python program.
I have this error while using numpy.digitize.<br>
I think it's how I use Pandas DataFrames:<br>
To keep it simple (because this is done through an external library), I have a list in my program but the library needs a DataFrame so I do something like this:</p>

<pre><code>ts = range(1000)
df = pandas.DataFrame(ts)
res = numpy.digitize(df.values, bins)
</code></pre>

<p>But then it seems like df.values is an array of lists instead of an array of floats. I mean:</p>

<pre><code>array([[   0],
   [   1],
   [   2],
   ..., 
   [997],
   [998],
   [999]], dtype=int64)
</code></pre>

<p>Help please, I spent too much time on this.</p>

<p>Try this:</p>

<pre><code>numpy.digitize(df.iloc[:, 0], bins)
</code></pre>

<p>You are trying to get the values from a whole DataFrame. That is why you get the 2D array. Each row in the array is a row of the DataFrame.</p>

python pandas numpy dataframe