ValueError: '对象对于所需数组来说太深'

Oth*_*jar 6 python numpy dataframe pandas

我在 Python 程序中有一个 ValueError: 'object too deep for desired array'。使用 numpy.digitize 时出现此错误。
我认为这就是我使用 Pandas DataFrames 的方式:
为了简单起见(因为这是通过外部库完成的),我的程序中有一个列表,但该库需要一个 DataFrame,所以我执行以下操作:

ts = range(1000)
df = pandas.DataFrame(ts)
res = numpy.digitize(df.values, bins)
Run Code Online (Sandbox Code Playgroud)

但是看起来 df.values 是一个列表数组而不是一个浮点数组。我的意思是:

array([[   0],
   [   1],
   [   2],
   ..., 
   [997],
   [998],
   [999]], dtype=int64)
Run Code Online (Sandbox Code Playgroud)

请帮助,我花了太多时间在这上面。

Kar*_*tik 4

尝试这个:

numpy.digitize(df.iloc[:, 0], bins)
Run Code Online (Sandbox Code Playgroud)

您正在尝试从整个 DataFrame 中获取值。这就是为什么你得到二维数组。数组中的每一行都是 DataFrame 的一行。